diff --git a/openpype/modules/sync_server/sync_server_module.py b/openpype/modules/sync_server/sync_server_module.py index 596aeb8b39..3744a21b43 100644 --- a/openpype/modules/sync_server/sync_server_module.py +++ b/openpype/modules/sync_server/sync_server_module.py @@ -300,13 +300,13 @@ class SyncServerModule(OpenPypeModule, ITrayModule): Returns: (dict): {'site': [alternative sites]...} """ - alt_site_pairs = defaultdict(list) + alt_site_pairs = defaultdict(set) for site_name, site_info in conf_sites.items(): alt_sites = set(site_info.get("alternative_sites", [])) - alt_site_pairs[site_name].extend(alt_sites) + alt_site_pairs[site_name].update(alt_sites) for alt_site in alt_sites: - alt_site_pairs[alt_site].append(site_name) + alt_site_pairs[alt_site].add(site_name) for site_name, alt_sites in alt_site_pairs.items(): sites_queue = deque(alt_sites) @@ -323,7 +323,7 @@ class SyncServerModule(OpenPypeModule, ITrayModule): alt_alt_site != site_name and alt_alt_site not in alt_sites ): - alt_sites.append(alt_alt_site) + alt_sites.add(alt_alt_site) sites_queue.append(alt_alt_site) return alt_site_pairs diff --git a/tests/unit/openpype/modules/sync_server/test_module_api.py b/tests/unit/openpype/modules/sync_server/test_module_api.py index 14613604dd..b7d3383c0b 100644 --- a/tests/unit/openpype/modules/sync_server/test_module_api.py +++ b/tests/unit/openpype/modules/sync_server/test_module_api.py @@ -37,9 +37,9 @@ class TestModuleApi(ModuleUnitTest): "studio2": {"alternative_sites": ["studio"]}} ret = setup_sync_server_module._get_alt_site_pairs(conf_sites) - expected = {"SFTP": ["studio", "studio2"], - "studio": ["SFTP", "studio2"], - "studio2": ["studio", "SFTP"]} + expected = {"SFTP": {"studio", "studio2"}, + "studio": {"SFTP", "studio2"}, + "studio2": {"studio", "SFTP"}} assert ret == expected, "Not matching result"