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]})
Beispiel #2
0
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)