def testFindClosestPersistent(self): view = ZodbInfoView(self.root['stub']['member'], TestRequest()) self.assertEquals(view.findClosestPersistent(), self.root['stub']) view = ZodbInfoView(self.root['stub']['member']['notpersistent'], TestRequest()) self.assertEquals(view.findClosestPersistent(), None)
def createView(self, obj): view = ZodbInfoView(obj, TestRequest()) view.obj = obj view.state = ZodbObjectStateStub(view.obj) view.requestedTid = None view.getRootOid = lambda: 1 return view
def test_loadHistoricalState(self): view = ZodbInfoView(None, None) view.obj = None view.history = [{}] # injected fault: KeyError('tid') self.assertEqual(view._loadHistoricalState(), [{'state': {}, 'error': "KeyError: 'tid'"}, {'state': {}, 'error': None}])
def test_getBreadcrumbsHTML(self): view = ZodbInfoView(None, None) view.getBreadcrumbs = lambda: [('/', 'here'), ('foo>', 'so"there'), ('/', None), ('bar<baz', None)] self.assertEqual( view.getBreadcrumbsHTML(), '<a href="here">/</a>' '<a href="so"there">foo></a>' '/bar<baz')
def testGetUrl(self): view = self._zodbInfoView(self.root, TestRequest()) self.assertEquals(view.getUrl(), '@@zodbbrowser?oid=0x%x' % u64(self.root._p_oid)) view = self._zodbInfoView(self.root, TestRequest()) self.assertEquals(view.getUrl(1, 2), '@@zodbbrowser?oid=0x1&tid=0x2') view = ZodbInfoView(self.root, TestRequest(form={'tid': '2'})) self.assertEquals(view.getUrl(1), '@@zodbbrowser?oid=0x1&tid=2')
def testGetUrl(self): view = self._zodbInfoView(self.root, TestRequest()) self.assertEqual(view.getUrl(), '@@zodbbrowser?oid=0x%x' % u64(self.root._p_oid)) view = self._zodbInfoView(self.root, TestRequest()) self.assertEqual(view.getUrl(1, 2), '@@zodbbrowser?oid=0x1&tid=0x2') view = ZodbInfoView(self.root, TestRequest(form={'tid': '2'})) self.assertEqual(view.getUrl(1), '@@zodbbrowser?oid=0x1&tid=2')
def test_getDisassembledPickleData(self): view = ZodbInfoView(None, None) view.state = ZodbObjectStateStub(PersistentStub()) view.state.pickledState = b'' self.assertEqual( view.getDisassembledPickleData(), 'ValueError: pickle exhausted before seeing STOP\n\n' 'ValueError: pickle exhausted before seeing STOP\n')
def test_listItems(self): view = ZodbInfoView(None, None) view.state = ZodbObjectStateStub(PersistentStub()) view.state.requestedTid = 42 view.state.listItems = lambda: [('zoinks', 17), ('scoobysnack', None)] self.assertEqual(view.listItems(), [ ZodbObjectAttribute('zoinks', 17, 42), ZodbObjectAttribute('scoobysnack', None, 42) ])
def test_listItems(self): view = ZodbInfoView(None, None) view.state = ZodbObjectStateStub(PersistentStub()) view.state.requestedTid = 42 view.state.listItems = lambda: [('zoinks', 17), ('scoobysnack', None)] self.assertEquals(view.listItems(), [ZodbObjectAttribute('zoinks', 17, 42), ZodbObjectAttribute('scoobysnack', None, 42)])
def test_getBreadcrumbsHTML(self): view = ZodbInfoView(None, None) view.getBreadcrumbs = lambda: [('/', 'here'), ('foo>', 'so"there'), ('/', None), ('bar<baz', None)] self.assertEquals(view.getBreadcrumbsHTML(), '<a href="here">/</a>' '<a href="so"there">foo></a>' '/bar<baz')
def test_loadHistoricalState(self): view = ZodbInfoView(None, None) view.obj = None view.history = [{}] # injected fault: KeyError('tid') self.assertEqual(view._loadHistoricalState(), [{ 'state': {}, 'error': "KeyError: 'tid'" }, { 'state': {}, 'error': None }])
def testGetRequestedTid(self): view = ZodbInfoView(self.root, TestRequest()) self.assertEqual(view.getRequestedTid(), None) self.assertEqual(view.getRequestedTidNice(), None) view = ZodbInfoView(self.root, TestRequest(form={'tid': '12345678912345678'})) self.assertEqual(view.getRequestedTid(), '12345678912345678') self.assertEqual(view.getRequestedTidNice(), '1905-05-13 03:32:22.050327')
def test_jar_uses_explicit_target_db(self): stub_db = DatabaseStub() registry = getGlobalSiteManager() registry.registerUtility(stub_db, IDatabase, name='<target>') self.addCleanup(registry.unregisterUtility, stub_db, IDatabase, name='<target>') view = ZodbInfoView(object(), TestRequest()) self.assertEqual(view.jar.db, stub_db) del view gc.collect() self.assertEqual(stub_db.opened, 0)
def testGetRequestedTid(self): view = ZodbInfoView(self.root, TestRequest()) self.assertEquals(view.getRequestedTid(), None) self.assertEquals(view.getRequestedTidNice(), None) view = ZodbInfoView(self.root, TestRequest(form={'tid': '12345678912345678'})) self.assertEquals(view.getRequestedTid(), '12345678912345678') self.assertEquals(view.getRequestedTidNice(), '1905-05-13 03:32:22.050327')
def _zodbInfoView(self, obj, request): view = ZodbInfoView(obj, request) view.template = lambda: '' view() return view
def testSelectObjectToView_by_oid(self): oid = u64(self.root['stub']._p_oid) view = ZodbInfoView(self.root, TestRequest(form={'oid': str(oid)})) self.assertEqual(view.selectObjectToView(), self.root['stub'])
def test_listItems_none_exist(self): view = ZodbInfoView(None, None) view.state = ZodbObjectStateStub(PersistentStub()) view.state.listItems = lambda: None self.assertEquals(view.listItems(), None)
def testSelectObjectToView_by_oid_in_hex(self): oid = u64(self.root['stub']._p_oid) hex_oid = hex(oid).rstrip('L') view = ZodbInfoView(self.root, TestRequest(form={'oid': hex_oid})) self.assertEqual(view.selectObjectToView(), self.root['stub'])
def testSelectObjectToView_by_oid_bad_format(self): view = ZodbInfoView(self.root, TestRequest(form={'oid': 'dunno'})) self.assertRaises(UserError, view.selectObjectToView)
def testSelectObjectToView_by_oid_in_hex(self): oid = u64(self.root['stub']._p_oid) hex_oid = hex(oid).rstrip('L') view = ZodbInfoView(self.root, TestRequest(form={'oid': hex_oid})) self.assertEquals(view.selectObjectToView(), self.root['stub'])
def testSelectObjectToView_find_parent_fail_fall_back_to_root(self): view = ZodbInfoView(self.root['stub']['member']['notpersistent'], TestRequest()) view.jar = self.root._p_jar self.assertEquals(view.selectObjectToView(), self.root)
def testSelectObjectToView_use_context(self): view = ZodbInfoView(self.root, TestRequest()) self.assertEquals(view.selectObjectToView(), self.root) view = ZodbInfoView(self.root['root']['item'], TestRequest()) self.assertEquals(view.selectObjectToView(), self.root['root']['item'])
def testSelectObjectToView_by_oid_bad_value(self): view = ZodbInfoView(self.root, TestRequest(form={'oid': '0xdeafbeef'})) self.assertRaises(UserError, view.selectObjectToView)
def testSelectObjectToView_find_parent_fail(self): view = ZodbInfoView(self.root['stub']['member']['notpersistent'], TestRequest()) self.assertRaises(Exception, view.selectObjectToView)
def testFindClosestPersistent(self): view = ZodbInfoView(self.root['stub']['member'], TestRequest()) self.assertEqual(view.findClosestPersistent(), self.root['stub']) view = ZodbInfoView(self.root['stub']['member']['notpersistent'], TestRequest()) self.assertEqual(view.findClosestPersistent(), None)
def testSelectObjectToView_find_parent(self): view = ZodbInfoView(self.root['stub']['member'], TestRequest()) self.assertEquals(view.selectObjectToView(), self.root['stub'])
def test_getPath(self): view = ZodbInfoView(None, None) view.getBreadcrumbs = lambda: [('/', None), ('foo', None), ('/', None), ('bar baz', None)] self.assertEqual(view.getPath(), '/foo/bar baz')
def testSelectObjectToView_by_oid(self): oid = u64(self.root['stub']._p_oid) view = ZodbInfoView(self.root, TestRequest(form={'oid': str(oid)})) self.assertEquals(view.selectObjectToView(), self.root['stub'])
def testSelectObjectToView_find_parent(self): view = ZodbInfoView(self.root['stub']['member'], TestRequest()) self.assertEqual(view.selectObjectToView(), self.root['stub'])
def testSelectObjectToView_use_context(self): view = ZodbInfoView(self.root, TestRequest()) self.assertEqual(view.selectObjectToView(), self.root) view = ZodbInfoView(self.root['root']['item'], TestRequest()) self.assertEqual(view.selectObjectToView(), self.root['root']['item'])
def test_listAttributes_none_exist(self): view = ZodbInfoView(None, None) view.state = ZodbObjectStateStub(PersistentStub()) view.state.requestedTid = 42 view.state.listAttributes = lambda: None self.assertEqual(view.listAttributes(), None)
def testGetJar(self): view = ZodbInfoView(self.root, TestRequest()) self.assertEqual(view.jar, self.root._p_jar) view = ZodbInfoView(self.root['stub']['member'], TestRequest()) self.assertEqual(view.jar, self.root._p_jar)
def test_listAttributes_empty(self): view = ZodbInfoView(None, None) view.state = ZodbObjectStateStub(PersistentStub()) view.state.requestedTid = 42 view.state.listAttributes = lambda: [] self.assertEqual(view.listAttributes(), [])
def test_getPath(self): view = ZodbInfoView(None, None) view.getBreadcrumbs = lambda: [('/', None), ('foo', None), ('/', None), ('bar baz', None)] self.assertEquals(view.getPath(), '/foo/bar baz')
def test_listItems_empty(self): view = ZodbInfoView(None, None) view.state = ZodbObjectStateStub(PersistentStub()) view.state.listItems = lambda: [] self.assertEqual(view.listItems(), [])
def test_listAttributes_none_exist(self): view = ZodbInfoView(None, None) view.state = ZodbObjectStateStub(PersistentStub()) view.state.requestedTid = 42 view.state.listAttributes = lambda: None self.assertEquals(view.listAttributes(), None)
def test_listItems_none_exist(self): view = ZodbInfoView(None, None) view.state = ZodbObjectStateStub(PersistentStub()) view.state.listItems = lambda: None self.assertEqual(view.listItems(), None)
def test_listItems_empty(self): view = ZodbInfoView(None, None) view.state = ZodbObjectStateStub(PersistentStub()) view.state.listItems = lambda: [] self.assertEquals(view.listItems(), [])
def test_tidToTimestamp(self): view = ZodbInfoView(None, None) self.assertEqual(view._tidToTimestamp(p64(12345678912345678)), '1905-05-13 03:32:22.050327') self.assertEqual(view._tidToTimestamp('something else'), "'something else'")
def test_tidToTimestamp(self): view = ZodbInfoView(None, None) self.assertEquals(view._tidToTimestamp(p64(12345678912345678)), '1905-05-13 03:32:22.050327') self.assertEquals(view._tidToTimestamp('something else'), "'something else'")
def testSelectObjectToView_find_parent_fail_fall_back_to_root(self): view = ZodbInfoView(self.root['stub']['member']['notpersistent'], TestRequest()) view.jar = self.root._p_jar self.assertEqual(view.selectObjectToView(), self.root)