dataimport/test/test_massive_store.py
changeset 10866 ed62ba97d79e
parent 10863 8e1f6de61300
child 10868 ffb5b6c25cec
equal deleted inserted replaced
10865:2537df9fdd27 10866:ed62ba97d79e
    88             self.assertEqual(len(crs.fetchall()), 0)
    88             self.assertEqual(len(crs.fetchall()), 0)
    89             store = MassiveObjectStore(cnx, autoflush_metadata=True)
    89             store = MassiveObjectStore(cnx, autoflush_metadata=True)
    90             store.prepare_insert_entity('Location', name=u'toto')
    90             store.prepare_insert_entity('Location', name=u'toto')
    91             store.flush()
    91             store.flush()
    92             store.commit()
    92             store.commit()
    93             store.cleanup()
    93             store.finish()
    94             cnx.commit()
    94             cnx.commit()
    95         with self.admin_access.repo_cnx() as cnx:
    95         with self.admin_access.repo_cnx() as cnx:
    96             crs = cnx.system_sql('SELECT * FROM entities WHERE type=%(t)s',
    96             crs = cnx.system_sql('SELECT * FROM entities WHERE type=%(t)s',
    97                                  {'t': 'Location'})
    97                                  {'t': 'Location'})
    98             self.assertEqual(len(crs.fetchall()), 1)
    98             self.assertEqual(len(crs.fetchall()), 1)
   112 #            self.assertEqual(len(crs.fetchall()), 0)
   112 #            self.assertEqual(len(crs.fetchall()), 0)
   113 #            store.flush_meta_data()
   113 #            store.flush_meta_data()
   114 #            crs = cnx.system_sql('SELECT * FROM entities WHERE type=%(t)s',
   114 #            crs = cnx.system_sql('SELECT * FROM entities WHERE type=%(t)s',
   115 #                                 {'t': 'Location'})
   115 #                                 {'t': 'Location'})
   116 #            self.assertEqual(len(crs.fetchall()), 1)
   116 #            self.assertEqual(len(crs.fetchall()), 1)
   117 #            store.cleanup()
   117 #            store.finish()
   118 
   118 
   119     def test_massimport_etype_metadata(self):
   119     def test_massimport_etype_metadata(self):
   120         with self.admin_access.repo_cnx() as cnx:
   120         with self.admin_access.repo_cnx() as cnx:
   121             store = MassiveObjectStore(cnx)
   121             store = MassiveObjectStore(cnx)
   122             timezone_eid = store.prepare_insert_entity('TimeZone')
   122             timezone_eid = store.prepare_insert_entity('TimeZone')
   152         self.assertNotIn('owned_by_relation_to_idx', indexes)
   152         self.assertNotIn('owned_by_relation_to_idx', indexes)
   153 
   153 
   154     def test_drop_index_recreation(self):
   154     def test_drop_index_recreation(self):
   155         with self.admin_access.repo_cnx() as cnx:
   155         with self.admin_access.repo_cnx() as cnx:
   156             store = MassiveObjectStore(cnx, drop_index=True)
   156             store = MassiveObjectStore(cnx, drop_index=True)
   157             store.cleanup()
   157             store.finish()
   158             cnx.commit()
   158             cnx.commit()
   159         with self.admin_access.repo_cnx() as cnx:
   159         with self.admin_access.repo_cnx() as cnx:
   160             crs = cnx.system_sql('SELECT indexname FROM pg_indexes')
   160             crs = cnx.system_sql('SELECT indexname FROM pg_indexes')
   161             indexes = [r[0] for r in crs.fetchall()]
   161             indexes = [r[0] for r in crs.fetchall()]
   162         self.assertIn('entities_pkey', indexes)
   162         self.assertIn('entities_pkey', indexes)
   220     def test_slave_mode_exception(self):
   220     def test_slave_mode_exception(self):
   221         with self.admin_access.repo_cnx() as cnx:
   221         with self.admin_access.repo_cnx() as cnx:
   222             master_store = MassiveObjectStore(cnx, slave_mode=False)
   222             master_store = MassiveObjectStore(cnx, slave_mode=False)
   223             slave_store = MassiveObjectStore(cnx, slave_mode=True)
   223             slave_store = MassiveObjectStore(cnx, slave_mode=True)
   224             self.assertRaises(RuntimeError, slave_store.flush_meta_data)
   224             self.assertRaises(RuntimeError, slave_store.flush_meta_data)
   225             self.assertRaises(RuntimeError, slave_store.cleanup)
   225             self.assertRaises(RuntimeError, slave_store.finish)
   226 
   226 
   227     def test_simple_insert(self):
   227     def test_simple_insert(self):
   228         with self.admin_access.repo_cnx() as cnx:
   228         with self.admin_access.repo_cnx() as cnx:
   229             store = MassiveObjectStore(cnx, autoflush_metadata=True)
   229             store = MassiveObjectStore(cnx, autoflush_metadata=True)
   230             self.push_geonames_data(osp.join(HERE, 'data/geonames.csv'), store)
   230             self.push_geonames_data(osp.join(HERE, 'data/geonames.csv'), store)
   248             self.assertNotIn('unique_entities_extid_idx', indexes)
   248             self.assertNotIn('unique_entities_extid_idx', indexes)
   249             self.assertNotIn('owned_by_relation_p_key', indexes)
   249             self.assertNotIn('owned_by_relation_p_key', indexes)
   250             self.assertNotIn('owned_by_relation_to_idx', indexes)
   250             self.assertNotIn('owned_by_relation_to_idx', indexes)
   251 
   251 
   252             # Cleanup -> index
   252             # Cleanup -> index
   253             store.cleanup()
   253             store.finish()
   254 
   254 
   255             # Check index again
   255             # Check index again
   256             crs = cnx.system_sql('SELECT indexname FROM pg_indexes')
   256             crs = cnx.system_sql('SELECT indexname FROM pg_indexes')
   257             indexes = [r[0] for r in crs.fetchall()]
   257             indexes = [r[0] for r in crs.fetchall()]
   258             self.assertIn('entities_pkey', indexes)
   258             self.assertIn('entities_pkey', indexes)
   276 
   276 
   277     def test_multiple_insert(self):
   277     def test_multiple_insert(self):
   278         with self.admin_access.repo_cnx() as cnx:
   278         with self.admin_access.repo_cnx() as cnx:
   279             store = MassiveObjectStore(cnx)
   279             store = MassiveObjectStore(cnx)
   280             store.init_etype_table('TestLocation')
   280             store.init_etype_table('TestLocation')
   281             store.cleanup()
   281             store.finish()
   282             store = MassiveObjectStore(cnx)
   282             store = MassiveObjectStore(cnx)
   283             store.init_etype_table('TestLocation')
   283             store.init_etype_table('TestLocation')
   284             store.cleanup()
   284             store.finish()
   285 
   285 
   286     def test_multiple_insert_relation(self):
   286     def test_multiple_insert_relation(self):
   287         with self.admin_access.repo_cnx() as cnx:
   287         with self.admin_access.repo_cnx() as cnx:
   288             store = MassiveObjectStore(cnx)
   288             store = MassiveObjectStore(cnx)
   289             store.init_relation_table('used_language')
   289             store.init_relation_table('used_language')
   290             store.cleanup()
   290             store.finish()
   291             store = MassiveObjectStore(cnx)
   291             store = MassiveObjectStore(cnx)
   292             store.init_relation_table('used_language')
   292             store.init_relation_table('used_language')
   293             store.cleanup()
   293             store.finish()
   294 
   294 
   295     def test_multiple_insert_drop_index(self):
   295     def test_multiple_insert_drop_index(self):
   296         with self.admin_access.repo_cnx() as cnx:
   296         with self.admin_access.repo_cnx() as cnx:
   297             store = MassiveObjectStore(cnx, drop_index=False)
   297             store = MassiveObjectStore(cnx, drop_index=False)
   298             store.init_relation_table('used_language')
   298             store.init_relation_table('used_language')
   299             store.init_etype_table('TestLocation')
   299             store.init_etype_table('TestLocation')
   300             store.cleanup()
   300             store.finish()
   301             store = MassiveObjectStore(cnx)
   301             store = MassiveObjectStore(cnx)
   302             store.init_relation_table('used_language')
   302             store.init_relation_table('used_language')
   303             store.init_etype_table('TestLocation')
   303             store.init_etype_table('TestLocation')
   304             store.cleanup()
   304             store.finish()
   305 
   305 
   306     def test_multiple_insert_drop_index_2(self):
   306     def test_multiple_insert_drop_index_2(self):
   307         with self.admin_access.repo_cnx() as cnx:
   307         with self.admin_access.repo_cnx() as cnx:
   308             store = MassiveObjectStore(cnx)
   308             store = MassiveObjectStore(cnx)
   309             store.init_relation_table('used_language')
   309             store.init_relation_table('used_language')
   310             store.init_etype_table('TestLocation')
   310             store.init_etype_table('TestLocation')
   311             store.cleanup()
   311             store.finish()
   312             store = MassiveObjectStore(cnx, drop_index=False)
   312             store = MassiveObjectStore(cnx, drop_index=False)
   313             store.init_relation_table('used_language')
   313             store.init_relation_table('used_language')
   314             store.init_etype_table('TestLocation')
   314             store.init_etype_table('TestLocation')
   315             store.cleanup()
   315             store.finish()
   316 
   316 
   317     def test_multiple_insert_drop_index_3(self):
   317     def test_multiple_insert_drop_index_3(self):
   318         with self.admin_access.repo_cnx() as cnx:
   318         with self.admin_access.repo_cnx() as cnx:
   319             store = MassiveObjectStore(cnx, drop_index=False)
   319             store = MassiveObjectStore(cnx, drop_index=False)
   320             store.init_relation_table('used_language')
   320             store.init_relation_table('used_language')
   321             store.init_etype_table('TestLocation')
   321             store.init_etype_table('TestLocation')
   322             store.cleanup()
   322             store.finish()
   323             store = MassiveObjectStore(cnx, drop_index=False)
   323             store = MassiveObjectStore(cnx, drop_index=False)
   324             store.init_relation_table('used_language')
   324             store.init_relation_table('used_language')
   325             store.init_etype_table('TestLocation')
   325             store.init_etype_table('TestLocation')
   326             store.cleanup()
   326             store.finish()
   327 
   327 
   328 
   328 
   329 if __name__ == '__main__':
   329 if __name__ == '__main__':
   330     from logilab.common.testlib import unittest_main
   330     from logilab.common.testlib import unittest_main
   331     unittest_main()
   331     unittest_main()