class CTSMEditingTestCase(unittest.TestCase): """ Testing the profile and management within this scope manager. """ def setUp(self): self.sm = ContentTypeScopeManager() self.file_profile = ContentTypeScopeProfile() self.file_profile.mapping = {'File': ['document_view']} self.folder_profile = ContentTypeScopeProfile() self.folder_profile.mapping = {'Folder': ['folder_contents']} def test_0001_edit(self): self.sm.setEditProfile('file', None) self.assertRaises(AssertionError, self.sm.setEditProfile, 'file', object()) self.sm.setEditProfile('file', self.file_profile) self.assertEqual(self.sm.getEditProfile('file'), self.file_profile) def test_0002_commit_del(self): self.sm.setEditProfile('file', self.file_profile) self.sm.commitEditProfile('file') self.assertEqual(self.sm.getMappingByName('file'), self.file_profile.mapping) mapping_id = self.sm.getMappingId('file') self.assertEqual(self.sm.getMappingMethods(mapping_id), ['GET', 'HEAD', 'OPTIONS']) self.sm.delMappingName('file') self.assertEqual(self.sm.getEditProfile('file'), None) self.assertEqual(self.sm.getMappingByName('file', default=None), None)
class CTSMMappingTestCase(unittest.TestCase): """ Testing the profile and management within this scope manager. """ def setUp(self): self.sm = ContentTypeScopeManager() self.file_mapping = {'File': ['document_view']} self.folder_mapping = {'Folder': ['folder_contents']} def test_0100_get_mapping(self): self.assertRaises(KeyError, self.sm.getMapping, 1) self.assertEqual(self.sm.getMapping(1, default='test'), 'test') def test_0101_add_get_mapping(self): self.assertEqual(self.sm.addMapping('test'), 1) self.assertEqual(self.sm.getMapping(1), 'test') def test_0200_mapping_name_and_id(self): _marker = 2 self.assertRaises(KeyError, self.sm.getMappingId, 'rawscope') self.sm.setMappingNameToId('rawscope', _marker) self.assertEqual(self.sm.getMappingId('rawscope'), _marker) self.sm.setMappingNameToId('rawscope', 3) self.assertEqual(self.sm.getMappingId('rawscope'), 3) self.sm.delMappingName('rawscope') self.assertRaises(KeyError, self.sm.getMappingId, 'rawscope') def test_1000_request_scope_fresh_fail(self): self.assertFalse(self.sm.requestScope('key', 'rawscope')) self.assertEqual(len(self.sm._scope), 0) def test_1001_request_scope_fresh_default(self): self.assertTrue(self.sm.requestScope('key', None)) self.assertEqual(len(self.sm._scope), 1) # Can't set this again. self.assertRaises(KeyError, self.sm.requestScope, 'key', None) def test_1002_request_scope_set_singular(self): key = 'request_key' scope = 'test_scope' mapping_id = self.sm.addMapping(self.file_mapping) self.sm.setMappingNameToId(scope, mapping_id) self.assertTrue(self.sm.requestScope(key, scope)) self.assertEqual(len(self.sm._scope), 1) mappings = self.sm.getScope(key) self.assertEqual(len(mappings), 1) self.assertTrue(mapping_id in mappings) # Obviously not an access scope. self.assertRaises(KeyError, self.sm.getAccessScope, key) # Nor a client scope. self.assertRaises(KeyError, self.sm.getClientScope, key) def test_1003_request_scope_multiple(self): file_id = self.sm.addMapping(self.file_mapping) folder_id = self.sm.addMapping(self.folder_mapping) self.sm.setMappingNameToId('file', file_id) self.sm.setMappingNameToId('folder', folder_id) key1 = 'request_key1' key2 = 'request_key2' raw_scope = 'test_scope' self.assertFalse(self.sm.requestScope(key1, 'test_scope')) # all of them must be valid. self.assertFalse(self.sm.requestScope(key1, 'http://nohost/plone/scope/file,test_scope')) self.assertTrue(self.sm.requestScope(key1, 'http://nohost/plone/scope/file,http://nohost/plone/scope/folder')) mappings = self.sm.getScope(key1) self.assertEqual(len(mappings), 2) self.assertTrue(file_id in mappings) self.assertTrue(folder_id in mappings) self.assertTrue(self.sm.requestScope(key2, 'http://nohost/plone/scope/folder')) mappings = self.sm.getScope(key2) self.assertEqual(len(mappings), 1) self.assertTrue(file_id not in mappings)