Example #1
0
    def test_preexisting_name(self):
        """ test preexisting names """
        layer = Layer.objects.external()[0]
        layer.new_nodes_allowed = False
        layer.save()
        layer = Layer.objects.get(pk=layer.pk)

        node = Node.first()
        self.assertNotEqual(layer.id, node.layer.id)
        node.name = 'simplejson'
        node.save()

        url = '%s/geojson1.json' % TEST_FILES_PATH

        external = LayerExternal(layer=layer)
        external.synchronizer_path = 'nodeshot.interop.sync.synchronizers.GeoJson'
        external._reload_schema()
        external.config = {"url": url}
        external.full_clean()
        external.save()

        output = capture_output(
            management.call_command,
            ['sync', 'vienna'],
            kwargs={'verbosity': 0}
        )

        # ensure following text is in output
        self.assertIn('2 nodes added', output)
        self.assertIn('0 nodes changed', output)
        self.assertIn('2 total external', output)
        self.assertIn('2 total local', output)
Example #2
0
    def test_preexisting_name(self):
        """ test preexisting names """
        layer = Layer.objects.external()[0]
        layer.new_nodes_allowed = False
        layer.save()
        layer = Layer.objects.get(pk=layer.pk)

        node = Node.first()
        self.assertNotEqual(layer.id, node.layer.id)
        node.name = 'simplejson'
        node.save()

        url = '%s/geojson1.json' % MOCK_URL_PREFIX
        responses.add(responses.GET,
                      url,
                      body=self._load('geojson1.json'),
                      content_type='application/json')

        external = LayerExternal(layer=layer)
        external.synchronizer_path = 'nodeshot.interop.sync.synchronizers.GeoJson'
        external._reload_schema()
        external.config = {"url": url}
        external.full_clean()
        external.save()

        output = capture_output(management.call_command, ['sync', 'vienna'],
                                kwargs={'verbosity': 0})

        # ensure following text is in output
        self.assertIn('2 nodes added', output)
        self.assertIn('0 nodes changed', output)
        self.assertIn('2 total external', output)
        self.assertIn('2 total local', output)
Example #3
0
    def test_preexisting_name(self):
        """ test preexisting names """
        layer = Layer.objects.external()[0]
        layer.minimum_distance = 0
        layer.area = None
        layer.new_nodes_allowed = False
        layer.save()
        layer = Layer.objects.get(pk=layer.pk)

        node = Node.first()
        self.assertNotEqual(layer.id, node.layer.id)
        node.name = 'simplejson'
        node.save()

        url = '%s/geojson1.json' % TEST_FILES_PATH

        external = LayerExternal(layer=layer)
        external.interoperability = 'nodeshot.interoperability.synchronizers.GeoJson'
        external.config = '{ "url": "%s", "map": {} }' % url
        external.full_clean()
        external.save()

        output = capture_output(
            management.call_command,
            ['synchronize', 'vienna'],
            kwargs={ 'verbosity': 0 }
        )

        # ensure following text is in output
        self.assertIn('2 nodes added', output)
        self.assertIn('0 nodes changed', output)
        self.assertIn('2 total external', output)
        self.assertIn('2 total local', output)
Example #4
0
    def test_key_mappings(self):
        """ importing a file with different keys """
        layer = Layer.objects.external()[0]
        layer.new_nodes_allowed = False
        layer.save()
        layer = Layer.objects.get(pk=layer.pk)

        node = Node.first()
        self.assertNotEqual(layer.id, node.layer.id)
        node.name = 'simplejson'
        node.save()

        url = '%s/geojson3.json' % MOCK_URL_PREFIX
        responses.add(responses.GET,
                      url,
                      body=self._load('geojson3.json'),
                      content_type='application/json')

        external = LayerExternal(layer=layer)
        external.synchronizer_path = 'nodeshot.interop.sync.synchronizers.GeoJson'
        external._reload_schema()
        external.url = url
        external.field_name = "nome"
        external.field_description = "descrizione"
        external.field_address = "indirizzo"
        external.field_elev = "altitudine"
        external.full_clean()
        external.save()

        output = capture_output(management.call_command, ['sync', 'vienna'],
                                kwargs={'verbosity': 0})

        # ensure following text is in output
        self.assertIn('2 nodes added', output)
        self.assertIn('0 nodes changed', output)
        self.assertIn('2 total external', output)
        self.assertIn('2 total local', output)

        node = Node.objects.get(slug='verycool')
        self.assertEqual(node.name, 'veryCool')
        self.assertEqual(node.address, 'veryCool indirizzo')
        self.assertEqual(node.description, 'veryCool descrizione')
        self.assertEqual(node.elev, 10.0)

        node = Node.objects.get(slug='secondo')
        self.assertEqual(node.name, 'secondo')
        self.assertEqual(node.address, 'secondo indirizzo')
        self.assertEqual(node.description, 'secondo descrizione')
        self.assertEqual(node.elev, 20.0)

        output = capture_output(management.call_command, ['sync', 'vienna'],
                                kwargs={'verbosity': 0})
        # no changes
        self.assertIn('0 nodes added', output)
        self.assertIn('0 nodes changed', output)
        self.assertIn('0 nodes deleted', output)
        self.assertIn('2 nodes unmodified', output)
        self.assertIn('2 total external', output)
        self.assertIn('2 total local', output)
Example #5
0
 def test_key_mappings(self):
     """ importing a file with different keys """
     
     layer = Layer.objects.external()[0]
     layer.minimum_distance = 0
     layer.area = None
     layer.new_nodes_allowed = False
     layer.save()
     layer = Layer.objects.get(pk=layer.pk)
     
     node = Node.first()
     self.assertNotEqual(layer.id, node.layer.id)
     node.name = 'simplejson'
     node.save()
     
     url = '%snodeshot/testing/geojson3.json' % settings.STATIC_URL
     
     external = LayerExternal(layer=layer)
     external.interoperability = 'nodeshot.interoperability.synchronizers.GeoJson'
     external.config = json.dumps({
         "url": url,
         "map": {
             "name": "nome",
             "description": "descrizione",
             "address": "indirizzo",
             "elevation": "altitudine"
         }
     })
     external.full_clean()
     external.save()
     
     # start capturing print statements
     output = StringIO()
     sys.stdout = output
     
     # execute command
     management.call_command('synchronize', 'vienna', verbosity=0)
     
     # stop capturing print statements
     sys.stdout = sys.__stdout__
     
     # ensure following text is in output
     self.assertIn('2 nodes added', output.getvalue())
     self.assertIn('0 nodes changed', output.getvalue())
     self.assertIn('2 total external', output.getvalue())
     self.assertIn('2 total local', output.getvalue())
     
     node = Node.objects.get(slug='verycool')
     self.assertEqual(node.name, 'veryCool')
     self.assertEqual(node.address, 'veryCool indirizzo')
     self.assertEqual(node.description, 'veryCool descrizione')
     self.assertEqual(node.elev, 10.0)
     
     node = Node.objects.get(slug='secondo')
     self.assertEqual(node.name, 'secondo')
     self.assertEqual(node.address, 'secondo indirizzo')
     self.assertEqual(node.description, 'secondo descrizione')
     self.assertEqual(node.elev, 20.0)
Example #6
0
    def test_key_mappings(self):
        """ importing a file with different keys """

        layer = Layer.objects.external()[0]
        layer.minimum_distance = 0
        layer.area = None
        layer.new_nodes_allowed = False
        layer.save()
        layer = Layer.objects.get(pk=layer.pk)

        node = Node.first()
        self.assertNotEqual(layer.id, node.layer.id)
        node.name = 'simplejson'
        node.save()

        url = '%snodeshot/testing/geojson3.json' % settings.STATIC_URL

        external = LayerExternal(layer=layer)
        external.interoperability = 'nodeshot.interoperability.synchronizers.GeoJson'
        external.config = json.dumps({
            "url": url,
            "map": {
                "name": "nome",
                "description": "descrizione",
                "address": "indirizzo",
                "elevation": "altitudine"
            }
        })
        external.full_clean()
        external.save()

        # start capturing print statements
        output = StringIO()
        sys.stdout = output

        # execute command
        management.call_command('synchronize', 'vienna', verbosity=0)

        # stop capturing print statements
        sys.stdout = sys.__stdout__

        # ensure following text is in output
        self.assertIn('2 nodes added', output.getvalue())
        self.assertIn('0 nodes changed', output.getvalue())
        self.assertIn('2 total external', output.getvalue())
        self.assertIn('2 total local', output.getvalue())

        node = Node.objects.get(slug='verycool')
        self.assertEqual(node.name, 'veryCool')
        self.assertEqual(node.address, 'veryCool indirizzo')
        self.assertEqual(node.description, 'veryCool descrizione')
        self.assertEqual(node.elev, 10.0)

        node = Node.objects.get(slug='secondo')
        self.assertEqual(node.name, 'secondo')
        self.assertEqual(node.address, 'secondo indirizzo')
        self.assertEqual(node.description, 'secondo descrizione')
        self.assertEqual(node.elev, 20.0)
Example #7
0
    def test_key_mappings(self):
        """ importing a file with different keys """
        layer = Layer.objects.external()[0]
        layer.minimum_distance = 0
        layer.area = None
        layer.new_nodes_allowed = False
        layer.save()
        layer = Layer.objects.get(pk=layer.pk)

        node = Node.first()
        self.assertNotEqual(layer.id, node.layer.id)
        node.name = 'simplejson'
        node.save()

        url = '%s/geojson3.json' % TEST_FILES_PATH

        external = LayerExternal(layer=layer)
        external.interoperability = 'nodeshot.interoperability.synchronizers.GeoJson'
        external.config = json.dumps({
            "url": url,
            "map": {
                "name": "nome",
                "description": "descrizione",
                "address": "indirizzo",
                "elevation": "altitudine"
            }
        })
        external.full_clean()
        external.save()

        output = capture_output(
            management.call_command,
            ['synchronize', 'vienna'],
            kwargs={ 'verbosity': 0 }
        )

        # ensure following text is in output
        self.assertIn('2 nodes added', output)
        self.assertIn('0 nodes changed', output)
        self.assertIn('2 total external', output)
        self.assertIn('2 total local', output)

        node = Node.objects.get(slug='verycool')
        self.assertEqual(node.name, 'veryCool')
        self.assertEqual(node.address, 'veryCool indirizzo')
        self.assertEqual(node.description, 'veryCool descrizione')
        self.assertEqual(node.elev, 10.0)

        node = Node.objects.get(slug='secondo')
        self.assertEqual(node.name, 'secondo')
        self.assertEqual(node.address, 'secondo indirizzo')
        self.assertEqual(node.description, 'secondo descrizione')
        self.assertEqual(node.elev, 20.0)
Example #8
0
 def test_preexisting_name(self):
     """ test preexisting names """
     
     layer = Layer.objects.external()[0]
     layer.minimum_distance = 0
     layer.area = None
     layer.new_nodes_allowed = False
     layer.save()
     layer = Layer.objects.get(pk=layer.pk)
     
     node = Node.first()
     self.assertNotEqual(layer.id, node.layer.id)
     node.name = 'simplejson'
     node.save()
     
     url = '%snodeshot/testing/geojson1.json' % settings.STATIC_URL
     
     external = LayerExternal(layer=layer)
     external.interoperability = 'nodeshot.interoperability.synchronizers.GeoJson'
     external.config = '{ "url": "%s", "map": {} }' % url
     external.full_clean()
     external.save()
     
     # start capturing print statements
     output = StringIO()
     sys.stdout = output
     
     # execute command
     management.call_command('synchronize', 'vienna', verbosity=0)
     
     # stop capturing print statements
     sys.stdout = sys.__stdout__
     
     # ensure following text is in output
     self.assertIn('2 nodes added', output.getvalue())
     self.assertIn('0 nodes changed', output.getvalue())
     self.assertIn('2 total external', output.getvalue())
     self.assertIn('2 total local', output.getvalue())
Example #9
0
    def test_preexisting_name(self):
        """ test preexisting names """

        layer = Layer.objects.external()[0]
        layer.minimum_distance = 0
        layer.area = None
        layer.new_nodes_allowed = False
        layer.save()
        layer = Layer.objects.get(pk=layer.pk)

        node = Node.first()
        self.assertNotEqual(layer.id, node.layer.id)
        node.name = 'simplejson'
        node.save()

        url = '%snodeshot/testing/geojson1.json' % settings.STATIC_URL

        external = LayerExternal(layer=layer)
        external.interoperability = 'nodeshot.interoperability.synchronizers.GeoJson'
        external.config = '{ "url": "%s", "map": {} }' % url
        external.full_clean()
        external.save()

        # start capturing print statements
        output = StringIO()
        sys.stdout = output

        # execute command
        management.call_command('synchronize', 'vienna', verbosity=0)

        # stop capturing print statements
        sys.stdout = sys.__stdout__

        # ensure following text is in output
        self.assertIn('2 nodes added', output.getvalue())
        self.assertIn('0 nodes changed', output.getvalue())
        self.assertIn('2 total external', output.getvalue())
        self.assertIn('2 total local', output.getvalue())
Example #10
0
    def test_key_mappings(self):
        """ importing a file with different keys """
        layer = Layer.objects.external()[0]
        layer.new_nodes_allowed = False
        layer.save()
        layer = Layer.objects.get(pk=layer.pk)

        node = Node.first()
        self.assertNotEqual(layer.id, node.layer.id)
        node.name = 'simplejson'
        node.save()

        url = '%s/geojson3.json' % TEST_FILES_PATH

        external = LayerExternal(layer=layer)
        external.synchronizer_path = 'nodeshot.interop.sync.synchronizers.GeoJson'
        external._reload_schema()
        external.url = url
        external.field_name = "nome"
        external.field_description = "descrizione"
        external.field_address = "indirizzo"
        external.field_elev = "altitudine"
        external.full_clean()
        external.save()

        output = capture_output(
            management.call_command,
            ['sync', 'vienna'],
            kwargs={'verbosity': 0}
        )

        # ensure following text is in output
        self.assertIn('2 nodes added', output)
        self.assertIn('0 nodes changed', output)
        self.assertIn('2 total external', output)
        self.assertIn('2 total local', output)

        node = Node.objects.get(slug='verycool')
        self.assertEqual(node.name, 'veryCool')
        self.assertEqual(node.address, 'veryCool indirizzo')
        self.assertEqual(node.description, 'veryCool descrizione')
        self.assertEqual(node.elev, 10.0)

        node = Node.objects.get(slug='secondo')
        self.assertEqual(node.name, 'secondo')
        self.assertEqual(node.address, 'secondo indirizzo')
        self.assertEqual(node.description, 'secondo descrizione')
        self.assertEqual(node.elev, 20.0)

        output = capture_output(
            management.call_command,
            ['sync', 'vienna'],
            kwargs={'verbosity': 0}
        )
        # no changes
        self.assertIn('0 nodes added', output)
        self.assertIn('0 nodes changed', output)
        self.assertIn('0 nodes deleted', output)
        self.assertIn('2 nodes unmodified', output)
        self.assertIn('2 total external', output)
        self.assertIn('2 total local', output)