56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
from django.core.management import call_command
 | 
						|
 | 
						|
from funkwhale_api.federation import models as federation_models
 | 
						|
from funkwhale_api.federation.management.commands import fix_federation_ids
 | 
						|
from funkwhale_api.music import models as music_models
 | 
						|
 | 
						|
 | 
						|
def test_fix_fids_dry_run(factories, mocker):
 | 
						|
    replace_prefix = mocker.patch("funkwhale_api.common.utils.replace_prefix")
 | 
						|
 | 
						|
    call_command("fix_federation_ids", "http://old/", "https://new/", interactive=False)
 | 
						|
 | 
						|
    replace_prefix.assert_not_called()
 | 
						|
 | 
						|
 | 
						|
def test_fix_fids_no_dry_run(factories, mocker, queryset_equal_queries):
 | 
						|
    replace_prefix = mocker.patch("funkwhale_api.common.utils.replace_prefix")
 | 
						|
    factories["federation.Actor"](fid="http://old/test")
 | 
						|
    call_command(
 | 
						|
        "fix_federation_ids",
 | 
						|
        "http://old",
 | 
						|
        "https://new",
 | 
						|
        interactive=False,
 | 
						|
        dry_run=False,
 | 
						|
    )
 | 
						|
 | 
						|
    models = [
 | 
						|
        (music_models.Artist, ["fid"]),
 | 
						|
        (music_models.Album, ["fid"]),
 | 
						|
        (music_models.Track, ["fid"]),
 | 
						|
        (music_models.Upload, ["fid"]),
 | 
						|
        (music_models.Library, ["fid", "followers_url"]),
 | 
						|
        (
 | 
						|
            federation_models.Actor,
 | 
						|
            [
 | 
						|
                "fid",
 | 
						|
                "url",
 | 
						|
                "outbox_url",
 | 
						|
                "inbox_url",
 | 
						|
                "following_url",
 | 
						|
                "followers_url",
 | 
						|
                "shared_inbox_url",
 | 
						|
            ],
 | 
						|
        ),
 | 
						|
        (federation_models.Activity, ["fid"]),
 | 
						|
        (federation_models.Follow, ["fid"]),
 | 
						|
        (federation_models.LibraryFollow, ["fid"]),
 | 
						|
    ]
 | 
						|
    assert models == fix_federation_ids.MODELS
 | 
						|
 | 
						|
    for kls, fields in models:
 | 
						|
        for field in fields:
 | 
						|
            replace_prefix.assert_any_call(
 | 
						|
                kls.objects.all(), field, old="http://old", new="https://new"
 | 
						|
            )
 |