def test_add_entry(self): """Test multiple add entry calls""" inserter = BulkInserter(OqUser) inserter.add_entry(user_name='user1', full_name='An user') self.assertEquals(sorted(['user_name', 'full_name']), sorted(inserter.fields)) self.assertEquals(inserter.count, 1) self.assertEquals(_map_values(inserter.fields, [{'user_name': 'user1', 'full_name': 'An user'}]), inserter.values) inserter.add_entry(user_name='user2', full_name='Another user') inserter.add_entry(user_name='user3', full_name='A third user') self.assertEquals(sorted(['user_name', 'full_name']), sorted(inserter.fields)) self.assertEquals(inserter.count, 3) self.assertEquals(_map_values(inserter.fields, [{'user_name': 'user1', 'full_name': 'An user'}, {'user_name': 'user2', 'full_name': 'Another user'}, {'user_name': 'user3', 'full_name': 'A third user'}]), inserter.values)
def test_add_entry_different_keys(self): inserter = BulkInserter(OqUser) inserter.add_entry(user_name='user1', full_name='An user') self.assertRaises(AssertionError, inserter.add_entry, user_name='user1') self.assertRaises(AssertionError, inserter.add_entry, user_name='user1', full_name='An user', data_is_open=False)
def test_flush_geometry(self): inserter = BulkInserter(GmfData) connection = writer.connections['reslt_writer'] inserter.add_entry(location='POINT(1 1)', output_id=1) fields = inserter.fields inserter.flush() if fields[0] == 'output_id': values = '%s, GeomFromText(%s, 4326)' else: values = 'GeomFromText(%s, 4326), %s' self.assertEquals('INSERT INTO "hzrdr"."gmf_data" (%s) VALUES (%s)' % (", ".join(fields), values), connection.sql)
def test_flush(self): inserter = BulkInserter(OqUser) connection = writer.connections['admin'] inserter.add_entry(user_name='user1', full_name='An user') fields = inserter.fields inserter.flush() self.assertEquals('INSERT INTO "admin"."oq_user" (%s) VALUES' \ ' (%%s, %%s)' % (", ".join(fields)), connection.sql) inserter.add_entry(user_name='user1', full_name='An user') inserter.add_entry(user_name='user2', full_name='Another user') fields = inserter.fields inserter.flush() self.assertEquals('INSERT INTO "admin"."oq_user" (%s) VALUES' \ ' (%%s, %%s), (%%s, %%s)' % (", ".join(fields)), connection.sql)