summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-02-21 14:15:24 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-02-21 14:15:24 +0100
commit6731d64dd2644a4cc4a60f7b53d2cbef1f9d324b (patch)
tree42dd080a8b73d6cfd18a16d5044fa91b58ebcc40
parent17f35fa216a4dcc38f43e4d20abc0a79182ed618 (diff)
downloadChimère-6731d64dd2644a4cc4a60f7b53d2cbef1f9d324b.tar.bz2
Chimère-6731d64dd2644a4cc4a60f7b53d2cbef1f9d324b.zip
Add property to v3 to v2 marker export
-rw-r--r--chimere/management/commands/v3_to_v2_markers.py12
-rw-r--r--chimere/tests.py22
2 files changed, 31 insertions, 3 deletions
diff --git a/chimere/management/commands/v3_to_v2_markers.py b/chimere/management/commands/v3_to_v2_markers.py
index 79188ba..0e36370 100644
--- a/chimere/management/commands/v3_to_v2_markers.py
+++ b/chimere/management/commands/v3_to_v2_markers.py
@@ -10,7 +10,7 @@ class Command(BaseCommand):
def handle(self, *args, **options):
out = StringIO()
- call_command('dumpdata', 'chimere.Marker', indent=4, stdout=out)
+ call_command('dumpdata', 'chimere.Marker', stdout=out)
vals = out.getvalue()
markers = json.loads(vals)
new_markers = []
@@ -19,6 +19,16 @@ class Command(BaseCommand):
data['fields'].pop('weight')
data['fields'].pop('normalised_weight')
new_markers.append(data)
+ out = StringIO()
+ call_command('dumpdata', 'chimere.Property', stdout=out)
+ vals = out.getvalue()
+ properties = json.loads(vals)
+ for property in properties:
+ data = property.copy()
+ data['fields'].pop('route')
+ data['fields'].pop('polygon')
+ new_markers.append(data)
+
res = json.dumps(new_markers)
self.stdout.write(res)
diff --git a/chimere/tests.py b/chimere/tests.py
index fde2702..c16f87b 100644
--- a/chimere/tests.py
+++ b/chimere/tests.py
@@ -24,7 +24,7 @@ from django.template import Context
from django.test import TestCase
from chimere.models import Area, Icon, Importer, Category, SubCategory, \
- Marker, Route, News, SubCategoryUserLimit, Polygon
+ Marker, Route, News, SubCategoryUserLimit, Polygon, PropertyModel
from chimere.forms import MarkerForm, AreaAdminForm, notifySubmission
from chimere.templatetags.chimere_tags import display_news
from chimere.utils import ShapefileManager
@@ -46,6 +46,19 @@ def areas_setup():
return [area_1, area_2, area_3]
+def properties_setup():
+ properties = []
+ properties.append(
+ PropertyModel.objects.create(name="Property 1", slug='prop-1',
+ order=10, available=True, mandatory=False)
+ )
+ properties.append(
+ PropertyModel.objects.create(name="Property 2", slug='prop-2',
+ order=20, available=True, mandatory=False)
+ )
+ return properties
+
+
def subcategory_setup():
category = Category.objects.create(
name='Main category', available=True, order=1, description='')
@@ -703,6 +716,8 @@ class V3ToV2Test(TestCase):
self.areas = areas_setup()
self.markers = marker_setup()
self.routes = route_setup()
+ properties_setup()
+ self.markers[0].setProperty('prop-1', 'myproperty')
def test_markers(self):
sysout = sys.stdout
@@ -710,9 +725,12 @@ class V3ToV2Test(TestCase):
call_command('v3_to_v2_markers')
vals = sys.stdout.getvalue()
markers = json.loads(vals)
- self.assertEqual(len(markers), 3)
+ self.assertEqual(len(markers), 4)
self.assertNotIn('weight', markers[0]['fields'])
self.assertNotIn('normalised_weight', markers[0]['fields'])
+ self.assertEqual(markers[-1]['fields']['value'], 'myproperty')
+ self.assertNotIn('polygon', markers[-1]['fields'])
+ self.assertNotIn('route', markers[-1]['fields'])
sys.stdout = sysout
def test_routes(self):