def test_loads_stored_workspace(self): """WorkspaceEdit's get_or_create should copy an existing stored workspace when creating a new one if the relevant setting exists.""" user = AnonymousUser() Setting.objects.create( key="default_workspace_anonymous_user", value="some_secret_slug") workspace_storage = WorkspaceStorage( name='storage', secret_slug="some_secret_slug") workspace_storage.save() workspace_storage_item = WorkspaceStorageItem( workspace=workspace_storage) workspace_storage_item.save() session_key = "whee" workspace_edit = WorkspaceEdit.get_or_create(session_key, user) # Should contain 1 item, copied from the workspace storage self.assertEquals( len(workspace_edit.workspace_items.all()), 1)
def setUp(self): self.user = User(username='******') self.user.save() self.workspace_edit = WorkspaceEdit() self.workspace_edit.save() self.workspace_storage = WorkspaceStorage( name='storage', owner=self.user) self.workspace_storage.save() class Mock(dict): def build_absolute_uri(self, arg): return "http://example.com" + arg self.request = Mock() self.request.session = Mock() self.request.session.session_key = 'mock-session-key' self.request.user = AnonymousUser() self.request.META = {}
def test_workspace_storage(self): user = User(username='******') user.save() workspace = WorkspaceStorage(name='workspace-storage', owner=user) workspace.save() workspace.__unicode__()
class WorkspaceLoadSaveTest(TestCase): """Loading and saving from WorkspaceEdit to WorkspaceStorage. """ def setUp(self): self.user = User(username='******') self.user.save() self.workspace_edit = WorkspaceEdit() self.workspace_edit.save() self.workspace_storage = WorkspaceStorage( name='storage', owner=self.user) self.workspace_storage.save() class Mock(dict): def build_absolute_uri(self, arg): return "http://example.com" + arg self.request = Mock() self.request.session = Mock() self.request.session.session_key = 'mock-session-key' self.request.user = AnonymousUser() self.request.META = {} def test_item_edit_as_storage(self): """WorkspaceEditItem to WorkspaceStorageItem conversion.""" workspace_item_edit = WorkspaceEditItem( workspace=self.workspace_edit) workspace_item_edit.save() workspace_storage_item = workspace_item_edit.as_storage( workspace=self.workspace_storage) workspace_storage_item.save() # Do not crash. # This dict does not have _state, _workspace_cache, workspace_id edit_dict = workspace_item_edit.__dict__ storage_dict = workspace_storage_item.__dict__ # _workspace_cache does not appear in other code... strange? del storage_dict['id'] del storage_dict['_state'] del storage_dict['_workspace_cache'] del storage_dict['workspace_id'] self.assertEquals(edit_dict, storage_dict) def test_item_storage_as_edit(self): """WorkspaceStorageItem to WorkspaceEditItem conversion.""" workspace_storage_item = WorkspaceStorageItem( workspace=self.workspace_storage) workspace_storage_item.save() workspace_item_edit = workspace_storage_item.as_edit( workspace=self.workspace_edit) workspace_item_edit.save() # Do not crash. # This dict does not have _state, _workspace_cache, workspace_id storage_dict = workspace_storage_item.__dict__ edit_dict = workspace_item_edit.__dict__ # _workspace_cache does not appear in other code... strange? del edit_dict['id'] del edit_dict['_state'] del edit_dict['_workspace_cache'] del edit_dict['workspace_id'] self.assertEquals(edit_dict, storage_dict) def test_load(self): """Load: copy from storage to edit.""" # Add some random workspace_items in edit workspace. self.workspace_edit.workspace_items.create(name="mock") # Add some random workspace_items in storage workspace. self.workspace_storage.workspace_items.create(name="saved") self.workspace_edit.load_from_storage(self.workspace_storage) self.assertEquals(len(self.workspace_edit.workspace_items.all()), 1) self.assertEquals( self.workspace_edit.workspace_items.all()[0].name, 'saved') def test_save(self): """Load: copy from storage to edit.""" # Add some random workspace_items in edit workspace. self.workspace_edit.workspace_items.create(name="edit") # Add some random workspace_items in storage workspace. self.workspace_storage.workspace_items.create(name="saved") # The name and owner must correspond. self.workspace_edit.save_to_storage(name='storage', owner=self.user) self.assertEquals(len(self.workspace_edit.workspace_items.all()), 1) # Just copied 'edit' from edit to storage. self.assertEquals( self.workspace_storage.workspace_items.all()[0].name, 'edit') # Item "saved" is deleted. self.assertEquals( len(WorkspaceStorageItem.objects.filter(name="saved")), 0) def test_save2(self): """Load: copy from storage to edit in different workspaces.""" user2 = User(username="******") user2.save() # Add some random workspace_items in edit workspace. self.workspace_edit.workspace_items.create(name="edit") # Find existing workspace = 1. self.workspace_edit.save_to_storage(name='storage', owner=self.user) # Create new workspace = 2. self.workspace_edit.save_to_storage(name='new', owner=self.user) # Create new workspace = 3. self.workspace_edit.save_to_storage(name='storage', owner=user2) # Overwrite workspace = 3. self.workspace_edit.save_to_storage(name='storage', owner=user2) # 3 workspaces, 3 workspace items should exist. self.assertEquals(WorkspaceStorage.objects.count(), 3) self.assertEquals(WorkspaceStorageItem.objects.count(), 3)