def tearDown(self): """ :return: """ model_fixture.tear_down() HACS_ACCESS_CONTROL_LOCAL.__release_local__() super(TestSecurityManager, self).tearDown()
def tearDown(self): """ :return: """ model_fixture.tear_down() super(TestHacsContainerModel, self).tearDown() HACS_ACCESS_CONTROL_LOCAL.__release_local__()
def tearDown(self): super(TestDynamicRouteMiddleware, self).tearDown() for root, dirs, files in os.walk(settings.HACS_GENERATED_URLCONF_DIR): for file_name in files: if file_name.startswith('hacs'): os.unlink(os.path.join(root, file_name)) HACS_SITE_CACHE.clear() HACS_ACCESS_CONTROL_LOCAL.__release_local__()
def release_system_user(): """ :return: """ current_user = getattr(HACS_ACCESS_CONTROL_LOCAL, 'current_user', None) assert isinstance(current_user, SystemUser), "System User is not attached yet!" backup_user = getattr(HACS_ACCESS_CONTROL_LOCAL, 'current_user_backup', None) HACS_ACCESS_CONTROL_LOCAL.__release_local__() if backup_user is not None: setattr(HACS_ACCESS_CONTROL_LOCAL, 'current_user', backup_user)
def tearDown(self): super(TestFirewallMiddlewareFromBrowser, self).tearDown() # I don't know if bellow method required or automatically cleared after tear down self.cache.clear() for root, dirs, files in os.walk(settings.HACS_GENERATED_URLCONF_DIR): for file_name in files: if file_name.startswith('hacs'): os.unlink(os.path.join(root, file_name)) HACS_ACCESS_CONTROL_LOCAL.__release_local__()
def tearDown(self): """ :return: """ super(TestHelpersException, self).tearDown() HACS_ACCESS_CONTROL_LOCAL.__release_local__()
def tearDown(self): super(TestMiddlewareFunctionException, self).tearDown() HACS_SITE_CACHE.clear() HACS_ACCESS_CONTROL_LOCAL.__release_local__()
def tearDown(self): """""" model_fixture.tear_down() super(TestJsonBUsecase, self).tearDown() HACS_ACCESS_CONTROL_LOCAL.__release_local__()
def tearDown(self): """""" model_fixture.tear_down() super(TestHacsQuerySet, self).tearDown() HACS_ACCESS_CONTROL_LOCAL.__release_local__()
def test_delete(self): """ :return: """ news_item_cls = model_fixture.models.get('news_item_cls') date_folder_cls = model_fixture.models.get('date_folder_cls') news_item_1 = news_item_cls.objects.get_by_natural_key('news-one') news_item_1_copy = copy.copy(news_item_1) news_item_2 = news_item_cls.objects.get_by_natural_key( 'news-two-with-local-roles') news_item_2_copy = copy.copy(news_item_2) date_folder1 = date_folder_cls.objects.get_by_natural_key('2016-10-10') date_folder1_copy = copy.copy(date_folder1) contributor2 = get_user_model().objects.get_by_natural_key( '*****@*****.**') # As we have one record self.assertGreater(news_item_cls.objects.count(), 0) self.assertGreater(date_folder_cls.objects.count(), 0) # Test delete security guard HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.memberuser try: news_item_1_copy.delete() raise AssertionError( "Code should not come here as member user don't have permission to delete any content" ) except PermissionDenied: pass HACS_ACCESS_CONTROL_LOCAL.current_user = contributor2 try: news_item_1_copy.delete() raise AssertionError( "Code should not come here as contributor user also don't has permission to " "delete any content") except PermissionDenied: pass HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.contributoruser try: news_item_1_copy.delete() # re-insert for further test attach_system_user() news_item_1.save() release_system_user() news_item_1_copy = copy.copy(news_item_1) except PermissionDenied: raise AssertionError( "Code should not come here as although contributor user don't has permission to " "delete any content but this certain contributor owner of this content" ) HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.editoruser try: news_item_1_copy.delete() # re-insert for further test attach_system_user() news_item_1.save() release_system_user() news_item_1_copy = copy.copy(news_item_1) except PermissionDenied: raise AssertionError( "Code should not come here as editor user has permission to " "delete any content") HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.superuser try: news_item_1_copy.delete() # re-insert for further test attach_system_user() news_item_1.save() release_system_user() news_item_1_copy = copy.copy(news_item_1) except PermissionDenied: raise AssertionError( "Code should not come here as super user can perform any action" ) # Test with local roles # Contributor user has local role Editor on news_item2 HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.contributoruser try: news_item_2_copy.delete() attach_system_user() news_item_2.save() release_system_user() news_item_2_copy = copy.copy(news_item_2) except PermissionDenied: raise AssertionError( "Code should not come here, because contributor user has local role editor" ) # Test By changing workflow state HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.editoruser try: date_folder1_copy.delete() attach_system_user() date_folder1.save() release_system_user() except PermissionDenied: raise AssertionError( "Code should not come here, as editor user should have permission to delete." ) date_folder1.state = 'published' attach_system_user() date_folder1.save() release_system_user() date_folder1_copy = copy.copy(date_folder1) try: date_folder1_copy.delete() raise AssertionError( "Code should not come here, as state changed to published, not" " `hacs.ManagePortal` permission holder can delete") except PermissionDenied: pass date_folder1_copy.owner = model_fixture.editoruser attach_system_user() date_folder1_copy.save() release_system_user() try: date_folder1_copy.delete() attach_system_user() date_folder1.save() release_system_user() date_folder1_copy = copy.copy(date_folder1) except PermissionDenied: raise AssertionError( "Code should not come here, as owner changed to editor user," "can delete") # Testing Children removed before parent container moved HACS_ACCESS_CONTROL_LOCAL.__release_local__() news_folder_cls = model_fixture.models.get('news_folder_cls') news_folder = news_folder_cls.objects.all().first() news_folder.delete() # No records should be, as cascade applied self.assertEqual(news_item_cls.objects.count(), 0) self.assertEqual(date_folder_cls.objects.count(), 0)