class DMLayersTest(TestCase): def setUp(self): self.dml = DMLayers() def test_get_404(self): self.assertIsNone(self.dml.get('namnam', 'cfr', 'verver/lablab')) def test_get_success(self): Layer(name='namnam', doc_type='cfr', doc_id='verver/lablab', layer={"some": "body"}).save() self.assertEqual({"some": 'body'}, self.dml.get('namnam', 'cfr', 'verver/lablab')) def test_bulk_put(self): """Writing multiple documents should save correctly. They can be modified""" layers = [{'111-22': [], '111-22-a': [], 'doc_id': 'verver/111-22'}, {'111-23': [], 'doc_id': 'verver/111-23'}] self.dml.bulk_put(layers, 'name', 'cfr', 'verver/111') self.assertEqual(Layer.objects.count(), 2) self.assertEqual(self.dml.get('name', 'cfr', 'verver/111-22'), {'111-22': [], '111-22-a': []}) self.assertEqual(self.dml.get('name', 'cfr', 'verver/111-23'), {'111-23': []}) layers[1] = {'111-23': [1], 'doc_id': 'verver/111-23'} self.dml.bulk_put(layers, 'name', 'cfr', 'verver/111') self.assertEqual(Layer.objects.count(), 2) self.assertEqual(self.dml.get('name', 'cfr', 'verver/111-23'), {'111-23': [1]})
class SplitterLayers(object): """Implementation of Django+Elastic Search as layers backend""" def __init__(self): self.dm = DMLayers() self.es = ESLayers() self.get = self.dm.get def bulk_put(self, layers, version, layer_name, root_label): """Write to both""" self.dm.bulk_put(layers, version, layer_name, root_label) self.es.bulk_put(layers, version, layer_name, root_label)
class DMLayersTest(TestCase): def setUp(self): self.dml = DMLayers() def test_get_404(self): self.assertIsNone(self.dml.get('namnam', 'cfr', 'verver/lablab')) def test_get_success(self): Layer(name='namnam', doc_type='cfr', doc_id='verver/lablab', layer={ "some": "body" }).save() self.assertEqual({"some": 'body'}, self.dml.get('namnam', 'cfr', 'verver/lablab')) def test_bulk_put(self): """Writing multiple documents should save correctly. They can be modified""" layers = [{ '111-22': [], '111-22-a': [], 'doc_id': 'verver/111-22' }, { '111-23': [], 'doc_id': 'verver/111-23' }] self.dml.bulk_put(layers, 'name', 'cfr', 'verver/111') self.assertEqual(Layer.objects.count(), 2) self.assertEqual(self.dml.get('name', 'cfr', 'verver/111-22'), { '111-22': [], '111-22-a': [] }) self.assertEqual(self.dml.get('name', 'cfr', 'verver/111-23'), {'111-23': []}) layers[1] = {'111-23': [1], 'doc_id': 'verver/111-23'} self.dml.bulk_put(layers, 'name', 'cfr', 'verver/111') self.assertEqual(Layer.objects.count(), 2) self.assertEqual(self.dml.get('name', 'cfr', 'verver/111-23'), {'111-23': [1]})
class DMLayersTest(TestCase, ReusableDMLayers): def setUp(self): Layer.objects.all().delete() self.dml = DMLayers() def test_bulk_put(self): layers = [ {'111-22': [], '111-22-a': [], 'label': '111-22'}, {'111-23': [], 'label': '111-23'}] self.dml.bulk_put(layers, 'verver', 'name', '111') layers = Layer.objects.all().order_by('label') self.assertEqual(2, len(layers)) self.assertEqual('verver', layers[0].version) self.assertEqual('name', layers[0].name) self.assertEqual('111-22', layers[0].label) self.assertEqual({'111-22': [], '111-22-a': []}, layers[0].layer) self.assertEqual('verver', layers[1].version) self.assertEqual('name', layers[1].name) self.assertEqual('111-23', layers[1].label) self.assertEqual({'111-23': []}, layers[1].layer) def test_bulk_put_overwrite(self): layers = [{'111-23': [], 'label': '111-23'}] self.dml.bulk_put(layers, 'verver', 'name', '111-23') layers = Layer.objects.all() self.assertEqual(1, len(layers)) self.assertEqual({'111-23': []}, layers[0].layer) layers = [{'111-23': [1], 'label': '111-23'}] self.dml.bulk_put(layers, 'verver', 'name', '111-23') layers = Layer.objects.all() self.assertEqual(1, len(layers)) self.assertEqual({'111-23': [1]}, layers[0].layer)