Example #1
0
 def test_xpath(self):
     doc_id_pattern = 'test_document_%03d'
     ct = Counter()
     with BaseXClient(self.basex_url, default_database=self.db_name,
                      user=self.basex_user, password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         for doc in self._build_documents(20):
             bx_client.add_document(doc, doc_id_pattern % int(doc.get('id')))
             if int(doc.find('leaf').get('even')):
                 ct['even'] += 1
             else:
                 ct['odd'] += 1
         results = bx_client.execute_query('/tree//leaf[@even="1"]/ancestor-or-self::leaf')
         self.assertEqual(len(results.getchildren()), ct['even'])
         for ch in results.getchildren():
             self.assertEqual(ch.tag, 'leaf')
         results = bx_client.execute_query('/tree//leaf[@even="0"]/ancestor-or-self::leaf')
         self.assertEqual(len(results.getchildren()), ct['odd'])
         for ch in results.getchildren():
             self.assertEqual(ch.tag, 'leaf')
         with self.assertRaises(pbx_errors.QueryError):
             bx_client.execute_query('/tree//leaf[@even="0"]/ancstr-or-self::leaf')
         with self.assertRaises(pbx_errors.UnknownDatabaseError):
             bx_client.execute_query('/tree//leaf[@even="0"]/ancestor-or-self::leaf',
                                     database='test_fake')
Example #2
0
 def test_xpath(self):
     doc_id_pattern = 'test_document_%03d'
     ct = Counter()
     with BaseXClient(self.basex_url,
                      default_database=self.db_name,
                      user=self.basex_user,
                      password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         for doc in self._build_documents(20):
             bx_client.add_document(doc,
                                    doc_id_pattern % int(doc.get('id')))
             if int(doc.find('leaf').get('even')):
                 ct['even'] += 1
             else:
                 ct['odd'] += 1
         results = bx_client.execute_query(
             '/tree//leaf[@even="1"]/ancestor-or-self::leaf')
         self.assertEqual(len(results.getchildren()), ct['even'])
         for ch in results.getchildren():
             self.assertEqual(ch.tag, 'leaf')
         results = bx_client.execute_query(
             '/tree//leaf[@even="0"]/ancestor-or-self::leaf')
         self.assertEqual(len(results.getchildren()), ct['odd'])
         for ch in results.getchildren():
             self.assertEqual(ch.tag, 'leaf')
         with self.assertRaises(pbx_errors.QueryError):
             bx_client.execute_query(
                 '/tree//leaf[@even="0"]/ancstr-or-self::leaf')
         with self.assertRaises(pbx_errors.UnknownDatabaseError):
             bx_client.execute_query(
                 '/tree//leaf[@even="0"]/ancestor-or-self::leaf',
                 database='test_fake')
Example #3
0
 def test_add_documents(self):
     doc_id_template = 'test_document_%03d'
     str_doc_template = '<tree id=\'%d\'><leaf id=\'1\'/><leaf id=\'2\'/><leaf id=\'3\'/></tree>'
     with BaseXClient(self.basex_url, default_database=self.db_name,
                      user=self.basex_user, password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         docs = list()
         for x in xrange(0, 10):
             docs.append(fromstring(str_doc_template % x))
         ids, dupl = bx_client.add_documents(docs)
         self.assertEqual(len(ids), 10)
         self.assertEqual(len(dupl), 0)
         ids, dupl = bx_client.add_documents(set(docs))
         self.assertEqual(len(ids), 10)
         self.assertEqual(len(dupl), 0)
         self.assertEqual(len(bx_client.get_resources()), 20)
         docs = {doc_id_template % x: fromstring(str_doc_template % x)
                 for x in xrange(0, 10)}
         ids, dupl = bx_client.add_documents(docs)
         self.assertEqual(len(ids), 10)
         self.assertEqual(len(dupl), 0)
         self.assertEqual(sorted(ids), sorted(docs.keys()))
         self.assertEqual(len(bx_client.get_resources()), 30)
         for x in xrange(20, 30):
             docs[doc_id_template % x] = fromstring(str_doc_template % x)
         with self.assertRaises(pbx_errors.OverwriteError):
             bx_client.add_documents(docs)
         self.assertEqual(len(bx_client.get_resources()), 30)
         ids, dupl = bx_client.add_documents(docs, skip_duplicated=True)
         self.assertEqual(len(ids), 10)
         self.assertEqual(len(dupl), 10)
         self.assertEqual(len(bx_client.get_resources()), 40)
Example #4
0
 def test_delete_database(self):
     with BaseXClient(self.basex_url, default_database=self.db_name,
                      user=self.basex_user, password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         with self.assertRaises(pbx_errors.UnknownDatabaseError):
             bx_client.delete_database('test_fake')
         bx_client.create_database()
         bx_client.delete_database()
Example #5
0
 def test_context_manager(self):
     with BaseXClient(self.basex_url,
                      default_database=self.db_name,
                      user=self.basex_user,
                      password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         self.assertTrue(bx_client.connected)
     self.assertFalse(bx_client.connected)
Example #6
0
 def test_create_database(self):
     with BaseXClient(self.basex_url, default_database=self.db_name,
                      user=self.basex_user, password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         dbs = bx_client.get_databases()
         self.assertIn(self.db_name, dbs.keys())
         with self.assertRaises(pbx_errors.OverwriteError):
             bx_client.create_database()
Example #7
0
 def tearDown(self):
     with BaseXClient(self.basex_url, default_database=self.db_name,
                      user=self.basex_user, password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         try:
             bx_client.delete_database()
         except pbx_errors.UnknownDatabaseError:
             # avoid errors if database was already deleted
             pass
Example #8
0
 def test_get_documents(self):
     str_doc = '<tree><leaf id=\'1\'/><leaf id=\'2\'/><leaf id=\'3\'/></tree>'
     with BaseXClient(self.basex_url, default_database=self.db_name,
                      user=self.basex_user, password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         docs = [fromstring(str_doc) for x in xrange(0, 10)]
         _, _ = bx_client.add_documents(docs)
         docs = bx_client.get_documents()
         self.assertEqual(sorted(docs.keys()), sorted(bx_client.get_resources().keys()))
Example #9
0
 def test_delete_database(self):
     with BaseXClient(self.basex_url,
                      default_database=self.db_name,
                      user=self.basex_user,
                      password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         with self.assertRaises(pbx_errors.UnknownDatabaseError):
             bx_client.delete_database('test_fake')
         bx_client.create_database()
         bx_client.delete_database()
Example #10
0
 def test_create_database(self):
     with BaseXClient(self.basex_url,
                      default_database=self.db_name,
                      user=self.basex_user,
                      password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         dbs = bx_client.get_databases()
         self.assertIn(self.db_name, dbs.keys())
         with self.assertRaises(pbx_errors.OverwriteError):
             bx_client.create_database()
Example #11
0
 def tearDown(self):
     with BaseXClient(self.basex_url,
                      default_database=self.db_name,
                      user=self.basex_user,
                      password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         try:
             bx_client.delete_database()
         except pbx_errors.UnknownDatabaseError:
             # avoid errors if database was already deleted
             pass
Example #12
0
 def test_get_documents(self):
     str_doc = '<tree><leaf id=\'1\'/><leaf id=\'2\'/><leaf id=\'3\'/></tree>'
     with BaseXClient(self.basex_url,
                      default_database=self.db_name,
                      user=self.basex_user,
                      password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         docs = [fromstring(str_doc) for x in xrange(0, 10)]
         _, _ = bx_client.add_documents(docs)
         docs = bx_client.get_documents()
         self.assertEqual(sorted(docs.keys()),
                          sorted(bx_client.get_resources().keys()))
Example #13
0
 def test_delete_document(self):
     doc_id = 'test_document_001'
     str_doc = '<tree><leaf id=\'1\'/><leaf id=\'2\'/><leaf id=\'3\'/></tree>'
     with BaseXClient(self.basex_url, default_database=self.db_name,
                      user=self.basex_user, password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         bx_client.add_document(fromstring(str_doc), doc_id)
         doc = bx_client.get_document(doc_id)
         self.assertIsNotNone(doc)
         bx_client.delete_document(doc_id)
         doc = bx_client.get_document(doc_id)
         self.assertIsNone(doc)
         with self.assertRaises(pbx_errors.UnknownDatabaseError):
             bx_client.delete_document(doc_id, database='test_fake')
Example #14
0
 def test_get_document(self):
     doc_id = 'test_document_001'
     str_doc = '<tree><leaf id=\'1\'/><leaf id=\'2\'/><leaf id=\'3\'/></tree>'
     with BaseXClient(self.basex_url, default_database=self.db_name,
                      user=self.basex_user, password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         bx_client.add_document(fromstring(str_doc), doc_id)
         doc = bx_client.get_document(doc_id)
         self.assertIsInstance(doc, _Element)
         self.assertEqual(doc.tag, 'tree')
         for ch in doc.getchildren():
             self.assertEqual(ch.tag, 'leaf')
         doc = bx_client.get_document('test_document_002')
         self.assertIsNone(doc)
         with self.assertRaises(pbx_errors.UnknownDatabaseError):
             bx_client.get_document(doc_id, database='test_fake')
Example #15
0
 def test_delete_document(self):
     doc_id = 'test_document_001'
     str_doc = '<tree><leaf id=\'1\'/><leaf id=\'2\'/><leaf id=\'3\'/></tree>'
     with BaseXClient(self.basex_url,
                      default_database=self.db_name,
                      user=self.basex_user,
                      password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         bx_client.add_document(fromstring(str_doc), doc_id)
         doc = bx_client.get_document(doc_id)
         self.assertIsNotNone(doc)
         bx_client.delete_document(doc_id)
         doc = bx_client.get_document(doc_id)
         self.assertIsNone(doc)
         with self.assertRaises(pbx_errors.UnknownDatabaseError):
             bx_client.delete_document(doc_id, database='test_fake')
Example #16
0
 def test_get_document(self):
     doc_id = 'test_document_001'
     str_doc = '<tree><leaf id=\'1\'/><leaf id=\'2\'/><leaf id=\'3\'/></tree>'
     with BaseXClient(self.basex_url,
                      default_database=self.db_name,
                      user=self.basex_user,
                      password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         bx_client.add_document(fromstring(str_doc), doc_id)
         doc = bx_client.get_document(doc_id)
         self.assertIsInstance(doc, _Element)
         self.assertEqual(doc.tag, 'tree')
         for ch in doc.getchildren():
             self.assertEqual(ch.tag, 'leaf')
         doc = bx_client.get_document('test_document_002')
         self.assertIsNone(doc)
         with self.assertRaises(pbx_errors.UnknownDatabaseError):
             bx_client.get_document(doc_id, database='test_fake')
Example #17
0
 def test_add_document(self):
     doc_id = 'test_document_001'
     str_doc = '<tree><leaf id=\'1\'/><leaf id=\'2\'/><leaf id=\'3\'/></tree>'
     with BaseXClient(self.basex_url, default_database=self.db_name,
                      user=self.basex_user, password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         _id = bx_client.add_document(fromstring(str_doc))
         res = bx_client.get_resources()
         self.assertIn(_id, res.keys())
         _id = bx_client.add_document(fromstring(str_doc), doc_id)
         self.assertEqual(_id, doc_id)
         res = bx_client.get_resources()
         self.assertIn(_id, res.keys())
         with self.assertRaises(pbx_errors.OverwriteError):
             bx_client.add_document(fromstring(str_doc), doc_id)
         with self.assertRaises(pbx_errors.UnknownDatabaseError):
             bx_client.add_document(fromstring(str_doc), doc_id,
                                    database='test_fake')
Example #18
0
 def test_add_document(self):
     doc_id = 'test_document_001'
     str_doc = '<tree><leaf id=\'1\'/><leaf id=\'2\'/><leaf id=\'3\'/></tree>'
     with BaseXClient(self.basex_url,
                      default_database=self.db_name,
                      user=self.basex_user,
                      password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         _id = bx_client.add_document(fromstring(str_doc))
         res = bx_client.get_resources()
         self.assertIn(_id, res.keys())
         _id = bx_client.add_document(fromstring(str_doc), doc_id)
         self.assertEqual(_id, doc_id)
         res = bx_client.get_resources()
         self.assertIn(_id, res.keys())
         with self.assertRaises(pbx_errors.OverwriteError):
             bx_client.add_document(fromstring(str_doc), doc_id)
         with self.assertRaises(pbx_errors.UnknownDatabaseError):
             bx_client.add_document(fromstring(str_doc),
                                    doc_id,
                                    database='test_fake')
Example #19
0
 def test_add_documents(self):
     doc_id_template = 'test_document_%03d'
     str_doc_template = '<tree id=\'%d\'><leaf id=\'1\'/><leaf id=\'2\'/><leaf id=\'3\'/></tree>'
     with BaseXClient(self.basex_url,
                      default_database=self.db_name,
                      user=self.basex_user,
                      password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         bx_client.create_database()
         docs = list()
         for x in xrange(0, 10):
             docs.append(fromstring(str_doc_template % x))
         ids, dupl = bx_client.add_documents(docs)
         self.assertEqual(len(ids), 10)
         self.assertEqual(len(dupl), 0)
         ids, dupl = bx_client.add_documents(set(docs))
         self.assertEqual(len(ids), 10)
         self.assertEqual(len(dupl), 0)
         self.assertEqual(len(bx_client.get_resources()), 20)
         docs = {
             doc_id_template % x: fromstring(str_doc_template % x)
             for x in xrange(0, 10)
         }
         ids, dupl = bx_client.add_documents(docs)
         self.assertEqual(len(ids), 10)
         self.assertEqual(len(dupl), 0)
         self.assertEqual(sorted(ids), sorted(docs.keys()))
         self.assertEqual(len(bx_client.get_resources()), 30)
         for x in xrange(20, 30):
             docs[doc_id_template % x] = fromstring(str_doc_template % x)
         with self.assertRaises(pbx_errors.OverwriteError):
             bx_client.add_documents(docs)
         self.assertEqual(len(bx_client.get_resources()), 30)
         ids, dupl = bx_client.add_documents(docs, skip_duplicated=True)
         self.assertEqual(len(ids), 10)
         self.assertEqual(len(dupl), 10)
         self.assertEqual(len(bx_client.get_resources()), 40)
Example #20
0
 def test_connection_error(self):
     with BaseXClient('http://localhost:1',
                      logger=get_logger('test', silent=True)) as bx_client:
         with self.assertRaises(pbx_errors.ConnectionError):
             bx_client.get_databases()
Example #21
0
 def test_connection_error(self):
     with BaseXClient('http://localhost:1', logger=get_logger('test', silent=True)) as bx_client:
         with self.assertRaises(pbx_errors.ConnectionError):
             bx_client.get_databases()
Example #22
0
 def test_context_manager(self):
     with BaseXClient(self.basex_url, default_database=self.db_name,
                      user=self.basex_user, password=self.basex_passwd,
                      logger=get_logger('test', silent=True)) as bx_client:
         self.assertTrue(bx_client.connected)
     self.assertFalse(bx_client.connected)