@@ -3015,7 +3015,7 @@ def test_developer_version_serializer_used_for_authors(self):
30153015 # not logged in
30163016 assert 'source' not in self .client .get (self .url ).data
30173017
3018- user = UserProfile . objects . create ( username = 'user' )
3018+ user = user_factory ( )
30193019 self .client .login_api (user )
30203020
30213021 # logged in but not an author
@@ -5022,7 +5022,7 @@ def test_developer_version_serializer_used_for_authors(self):
50225022 assert 'source' not in self .client .get (self .url ).data ['results' ][0 ]
50235023 assert 'source' not in self .client .get (self .url ).data ['results' ][1 ]
50245024
5025- user = UserProfile . objects . create ( username = 'user' )
5025+ user = user_factory ( )
50265026 self .client .login_api (user )
50275027
50285028 # logged in but not an author
@@ -5045,6 +5045,7 @@ def setUp(self):
50455045 guid = generate_addon_guid (), name = 'My Addôn' , slug = 'my-addon'
50465046 )
50475047 self .url = reverse_ns ('addon-eula-policy' , kwargs = {'pk' : self .addon .pk })
5048+ self .user = user_factory (read_dev_agreement = self .days_ago (1 ))
50485049
50495050 def test_url (self ):
50505051 self .detail_url = reverse_ns ('addon-detail' , kwargs = {'pk' : self .addon .pk })
@@ -5076,8 +5077,7 @@ def test_eula_and_policy(self):
50765077 assert data ['privacy_policy' ] == {'en-US' : 'My Prïvacy, My Policy' }
50775078
50785079 def test_update_non_author (self ):
5079- user = UserProfile .objects .create (username = 'user' )
5080- self .client .login_api (user )
5080+ self .client .login_api (self .user )
50815081 response = self .client .patch (
50825082 self .url ,
50835083 {
@@ -5136,9 +5136,8 @@ def test_update_anonymous(self):
51365136 assert response .status_code == 401
51375137
51385138 def test_update (self ):
5139- user = UserProfile .objects .create (username = 'user' )
5140- AddonUser .objects .create (user = user , addon = self .addon )
5141- self .client .login_api (user )
5139+ AddonUser .objects .create (user = self .user , addon = self .addon )
5140+ self .client .login_api (self .user )
51425141 assert not ActivityLog .objects .filter (
51435142 action = amo .LOG .EDIT_PROPERTIES .id
51445143 ).exists ()
@@ -5178,9 +5177,8 @@ def test_update(self):
51785177 ].details == ['eula' , 'privacy_policy' ]
51795178
51805179 def test_update_put (self ):
5181- user = UserProfile .objects .create (username = 'user' )
5182- AddonUser .objects .create (user = user , addon = self .addon )
5183- self .client .login_api (user )
5180+ AddonUser .objects .create (user = self .user , addon = self .addon )
5181+ self .client .login_api (self .user )
51845182 response = self .client .put (
51855183 self .url ,
51865184 {
@@ -5195,12 +5193,73 @@ def test_update_put(self):
51955193 )
51965194 assert response .status_code == 405
51975195
5196+ def test_update_author_not_read_dev_agreement (self ):
5197+ AddonUser .objects .create (user = self .user , addon = self .addon )
5198+ self .user .update (read_dev_agreement = None )
5199+ self .client .login_api (self .user )
5200+ response = self .client .patch (
5201+ self .url ,
5202+ {
5203+ 'eula' : {
5204+ 'en-US' : 'My Updated Add-on EULA in English' ,
5205+ 'fr' : 'Mes Conditions générales d’utilisation' ,
5206+ },
5207+ 'privacy_policy' : {
5208+ 'en-US' : 'My privacy policy' ,
5209+ },
5210+ },
5211+ )
5212+ assert response .status_code == 403
5213+ self .addon .reload ()
5214+ assert not self .addon .eula
5215+ assert not self .addon .privacy_policy
5216+
5217+ def test_update_reviewer_not_author (self ):
5218+ self .grant_permission (self .user , 'Addons:Review' )
5219+ self .client .login_api (self .user )
5220+ response = self .client .patch (
5221+ self .url ,
5222+ {
5223+ 'eula' : {
5224+ 'en-US' : 'My Updated Add-on EULA in English' ,
5225+ 'fr' : 'Mes Conditions générales d’utilisation' ,
5226+ },
5227+ 'privacy_policy' : {
5228+ 'en-US' : 'My privacy policy' ,
5229+ },
5230+ },
5231+ )
5232+ assert response .status_code == 403
5233+ self .addon .reload ()
5234+ assert not self .addon .eula
5235+ assert not self .addon .privacy_policy
5236+
5237+ def test_update_disabled (self ):
5238+ AddonUser .objects .create (user = self .user , addon = self .addon )
5239+ self .client .login_api (self .user )
5240+ self .addon .update (status = amo .STATUS_DISABLED )
5241+ response = self .client .patch (
5242+ self .url ,
5243+ {
5244+ 'eula' : {
5245+ 'en-US' : 'My Updated Add-on EULA in English' ,
5246+ 'fr' : 'Mes Conditions générales d’utilisation' ,
5247+ },
5248+ 'privacy_policy' : {
5249+ 'en-US' : 'My privacy policy' ,
5250+ },
5251+ },
5252+ )
5253+ assert response .status_code == 403
5254+ self .addon .reload ()
5255+ assert not self .addon .eula
5256+ assert not self .addon .privacy_policy
5257+
51985258 def test_update_something_else (self ):
51995259 assert self .addon .summary
52005260 original_summary = self .addon .summary
5201- user = UserProfile .objects .create (username = 'user' )
5202- AddonUser .objects .create (user = user , addon = self .addon )
5203- self .client .login_api (user )
5261+ AddonUser .objects .create (user = self .user , addon = self .addon )
5262+ self .client .login_api (self .user )
52045263 response = self .client .patch (
52055264 self .url ,
52065265 {'summary' : 'attempting to change the summary via wrong endpoint' },
@@ -5212,10 +5271,9 @@ def test_update_something_else(self):
52125271 assert self .addon .summary == original_summary
52135272
52145273 def test_update_on_theme (self ):
5215- user = UserProfile .objects .create (username = 'user' )
52165274 self .addon .update (type = amo .ADDON_STATICTHEME )
5217- AddonUser .objects .create (user = user , addon = self .addon )
5218- self .client .login_api (user )
5275+ AddonUser .objects .create (user = self . user , addon = self .addon )
5276+ self .client .login_api (self . user )
52195277 response = self .client .patch (
52205278 self .url ,
52215279 {
0 commit comments