def test_delete_not_owned_comment(self): comment = Comment(user=self.admin) self.assertTrue( self.superuser.has_perm('comment.delete', comment, self.project) ) self.assertTrue(self.admin.has_perm('comment.delete', comment, self.project)) self.assertFalse(self.user.has_perm('comment.delete', comment, self.project))
def check_unit(self, nplurals=3, template=None, source_info=None, **kwargs): if nplurals == 3: formula = "n==0 ? 0 : n==1 ? 1 : 2" else: formula = "0" lang = Language.objects.create(code="zz") plural = Plural.objects.create(language=lang, number=nplurals, formula=formula) project = Project(slug="test") component = Component( slug="comp", project=project, file_format="xliff", template=template, source_language=Language.objects.get(code="en"), ) translation = Translation(language=lang, component=component, plural=plural) # Fake file format to avoid need for actual files translation.store = EmptyFormat(BytesIOMode("", b"")) unit = Unit(translation=translation, id_hash=-1, **kwargs) if source_info: for key, value in source_info.items(): setattr(unit, key, value) # The dashes need special handling in XML based formats unit.__dict__["unresolved_comments"] = [ Comment(comment="Weblate translator comment ---- ") ] unit.__dict__["suggestions"] = [ Suggestion(target="Weblate translator suggestion") ] else: unit.__dict__["unresolved_comments"] = [] unit.source_unit = unit exporter = self.get_exporter(lang, translation=translation) exporter.add_unit(unit) return self.check_export(exporter)
def test_cache(self): comment = Comment(project=self.project) key = ('_can_delete_comment', self.project.get_full_slug()) self.assertTrue(not hasattr(self.user, 'acl_permissions_cache')) self.assertFalse(can_delete_comment(self.user, comment)) self.assertFalse(self.user.acl_permissions_cache[key]) self.user.acl_permissions_cache[key] = True self.assertTrue(can_delete_comment(self.user, comment))
def test_delete_owned_comment(self): comment = Comment(user=self.user) self.assertTrue( self.superuser.has_perm("comment.delete", comment, self.project)) self.assertTrue( self.admin.has_perm("comment.delete", comment, self.project)) self.assertTrue( self.user.has_perm("comment.delete", comment, self.project))
def test_cache(self): comment = Comment(project=self.project) key = ('_can_delete_comment', '{}-{}'.format(self.project.__class__.__name__, self.project.pk)) self.assertTrue(not hasattr(self.user, 'acl_permissions_cache')) self.assertFalse(can_delete_comment(self.user, comment)) self.assertFalse(self.user.acl_permissions_cache[key]) self.user.acl_permissions_cache[key] = True self.assertTrue(can_delete_comment(self.user, comment))
def test_override_admin(self): comment = Comment(project=self.project, user=self.admin) self.assertTrue( self.superuser.has_perm('comment.delete', comment, self.project) ) self.assertTrue( self.admin.has_perm('comment.delete', comment, self.project) ) self.assertFalse( self.user.has_perm('comment.delete', comment, self.project) )
def test_delete_comment_user(self): comment = Comment(project=self.project) self.assertFalse(can_delete_comment(self.user, comment))
def test_delete_comment_owner(self): comment = Comment(project=self.project) self.assertTrue(can_delete_comment(self.owner, comment))
def fake_get_comments(): return [Comment(comment="Weblate translator comment")]
def test_delete_not_owned_comment(self): comment = Comment(unit=self.get_unit(), user=self.admin) self.assertTrue(self.superuser.has_perm("comment.delete", comment)) self.assertTrue(self.admin.has_perm("comment.delete", comment)) self.assertFalse(self.user.has_perm("comment.delete", comment))