33 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
| import pytest
 | |
| 
 | |
| from funkwhale_api.favorites import models
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize(
 | |
|     "privacy_level,expected",
 | |
|     [("me", False), ("instance", True), ("everyone", True)],
 | |
| )
 | |
| def test_playable_by_local_actor(privacy_level, expected, factories):
 | |
|     actor = factories["federation.Actor"](local=True)
 | |
|     # default user actor is local
 | |
|     user = factories["users.User"](privacy_level=privacy_level)
 | |
|     user.create_actor()
 | |
|     favorite = factories["favorites.TrackFavorite"](actor=user.actor)
 | |
|     queryset = models.TrackFavorite.objects.all().viewable_by(actor)
 | |
|     match = favorite in list(queryset)
 | |
|     assert match is expected
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize(
 | |
|     "privacy_level,expected", [("me", False), ("instance", False), ("everyone", True)]
 | |
| )
 | |
| def test_not_playable_by_remote_actor(privacy_level, expected, factories):
 | |
|     actor = factories["federation.Actor"]()
 | |
|     # default user actor is local
 | |
|     user = factories["users.User"](privacy_level=privacy_level)
 | |
|     user.create_actor()
 | |
|     favorite = factories["favorites.TrackFavorite"](actor=user.actor)
 | |
|     queryset = models.TrackFavorite.objects.all().viewable_by(actor)
 | |
|     match = favorite in list(queryset)
 | |
|     assert match is expected
 |