示例#1
0
    def test_update_categories(self):
        di = DataImport(name="junk",
                        duplicate_content="no",
                        last_updated=datetime.datetime.now(),
                        upload_format="csv",
                        upload_type="1")
        di.save()

        cat = Categories(name="test cat")
        cat.save()
        cat2 = Categories(name="test cat2")
        cat2.save()

        cat_list = "%s,%s" % (str(cat.id), str(cat2.id))

        self.assertEqual(0, len(Categories.objects_with("test cat")))
        self.assertEqual(0, len(Categories.objects_with("test cat2")))
        self.assertEqual(0, len(Categories.for_object(di)))

        update_categories(di, cat_list)

        self.assertEqual(1, len(Categories.objects_with("test cat")))
        self.assertEqual(1, len(Categories.objects_with("test cat2")))

        self.assertEqual(2, len(Categories.for_object(di)))
        self.assertEqual("test cat", Categories.for_object(di)[0].name)
        self.assertEqual("test cat2", Categories.for_object(di)[1].name)

        di.delete()
        cat.delete()
        cat2.delete()
示例#2
0
    def test_update_categories_work_with_invalid_category(self):
        di = DataImport(name="junk",
                        duplicate_content="no",
                        last_updated=datetime.datetime.now(),
                        upload_format="csv",
                        upload_type="1")
        di.save()
        cat = Categories(name="test cat")
        cat.save()

        cat_list = "i'm not a category,56485cb53f3aaaaaaaaaaaaa, %s" % (str(
            cat.id))

        self.assertEqual(0, len(Categories.objects_with("test cat")))
        self.assertEqual(0, len(Categories.for_object(di)))

        update_categories(di, cat_list)

        self.assertEqual(1, len(Categories.objects_with("test cat")))

        self.assertEqual(1, len(Categories.for_object(di)))
        self.assertEqual("test cat", Categories.for_object(di)[0].name)

        di.delete()
        cat.delete()
示例#3
0
def create_data_import():
    # Create Data Import for food info
    try:
        data_import = DataImport.objects.get(name__exact="Food Info")

    except DataImport.DoesNotExist:
        data_import = DataImport(upload_type="0",
                                 upload_format="0",
                                 upload_file=os.path.join(
                                     settings.MEDIA_ROOT,
                                     "data_import/food_stats.csv"),
                                 duplicate_content="1",
                                 content_status="1",
                                 name="Food Info",
                                 last_updated=datetime.datetime.now())
        data_import.save()

        data, created = Data.objects.get_or_create(import_id=str(
            data_import.id), )
        if created:
            data.save()
    serializer = DataImportSerializer(data_import)
    parse_csv(open(serializer.object.upload_file, 'r+'), serializer.object,
              Data, 1, True)

    # Create Data Import for soil info
    try:
        data_import = DataImport.objects.get(name__exact="Environment Info")

    except DataImport.DoesNotExist:
        data_import = DataImport(upload_type="0",
                                 upload_format="0",
                                 upload_file=os.path.join(
                                     settings.MEDIA_ROOT,
                                     "data_import/env.csv"),
                                 duplicate_content="1",
                                 content_status="1",
                                 name="Environment Info",
                                 last_updated=datetime.datetime.now())
        data_import.save()

        data, created = Data.objects.get_or_create(import_id=str(
            data_import.id), )
        if created:
            data.save()
    serializer = DataImportSerializer(data_import)
    parse_csv(open(serializer.object.upload_file, 'r+'), serializer.object,
              Data, 1, True)
示例#4
0
 def test_cats_tagged_holds_anything(self):
     di = DataImport(name="junk",
                     duplicate_content="no",
                     last_updated=datetime.now(),
                     upload_format="csv",
                     upload_type="1")
     di.save()
     cat = Categories(name="test cat", tagged=[self.loc, di])
     cat.save()
     self.assertEqual(2, cat.number_using)
     cat.delete()
     di.delete()
示例#5
0
    def test_cats_for_obj_id(self):
        di = DataImport(name="junk",
                        duplicate_content="no",
                        last_updated=datetime.now(),
                        upload_format="csv",
                        upload_type="1")
        di.save()
        cat = Categories(name="test cat", tagged=[self.loc, di])
        cat.save()
        found_cats = Categories.for_object_id(str(di.id), "DataImport")
        self.assertEqual(1, len(found_cats))

        cat.delete()
        di.delete()
示例#6
0
 def test_for_object(self):
     di = DataImport(name="junk",
                     duplicate_content="no",
                     last_updated=datetime.now(),
                     upload_format="csv",
                     upload_type="1")
     di.save()
     cat = Categories(name="test cat", tagged=[self.loc, di])
     cat.save()
     self.assertEqual(cat.name, Categories.for_object(di)[0].name)
     self.assertEqual(1, len(Categories.for_object(di)))
     self.assertEqual(cat.name, Categories.for_object(self.loc)[0].name)
     self.assertEqual(1, len(Categories.for_object(self.loc)))
     cat.delete()
     di.delete()
示例#7
0
    def test_cats_get_all_tagged(self):

        di = DataImport(name="junk",
                        duplicate_content="no",
                        last_updated=datetime.now(),
                        upload_format="csv",
                        upload_type="1")
        di.save()
        cat = Categories(name="test cat1", tagged=[self.loc, di])
        cat.save()

        tagged = Categories.objects_with("test cat1")
        self.assertEqual(tagged, [self.loc, di])

        cat.delete()
        di.delete()
示例#8
0
    def test_remove_obj(self):
        di = DataImport(name="junk",
                        duplicate_content="no",
                        last_updated=datetime.now(),
                        upload_format="csv",
                        upload_type="1")
        di.save()
        cat = Categories(name="test cat", tagged=[self.loc, di])
        cat.save()
        cat2 = Categories(name="garfield", tagged=[self.loc])
        cat2.save()

        self.assertEqual(2, len(Categories.for_object(self.loc)))

        Categories.remove_obj(self.loc)

        self.assertEqual(0, len(Categories.for_object(self.loc)))

        di.delete()
        cat.delete()
        cat2.delete()
示例#9
0
 def setUp(self):
     self.di = DataImport(upload_type="0", upload_format="csv",
                          duplicate_content="1", last_updated=datetime.now(),
                          name="unit test data import",
                          description="testing testing")
     self.di.save()
示例#10
0
class TestDataVisualizationSerializer(unittest.TestCase):

    def setUp(self):
        self.di = DataImport(upload_type="0", upload_format="csv",
                             duplicate_content="1", last_updated=datetime.now(),
                             name="unit test data import",
                             description="testing testing")
        self.di.save()

    def tearDown(self):
        self.di.delete()

    def test_serialize(self):
        w = Widget(chart_options={"chart": {"val1": "key1", "val2":
                                            "key2"}},
                   config_fields={"xAxis": {"id": 1, "name": "revenue"}},
                   title="some chart",
                   viz_datasets=[self.di],
                   viz_type="Chart")

        dv = DataVisualization(group_name="unit test viz",
                               selected_external_ds=[self.di],
                               selected_internal_ds=[self.di],
                               widgets=[w])
        dv.save()

        serializer = DataVisualizationSerializer(dv)

        dv.delete()
        self.assertEquals(serializer.data["group_name"], "unit test viz")
        self.assertEquals(serializer.data["selected_external_ds"][0]["description"],
                          "testing testing")
        self.assertIsNone(
            serializer.data["selected_external_ds"][0].get("duplicate_content"))
        self.assertEquals(serializer.data["widgets"][0]["viz_datasets"][0]["description"],
                          "testing testing")
        self.assertIsNone(
            serializer.data["widgets"][0]["viz_datasets"][0].get("duplicate_content"))
        self.assertEquals(serializer.data["widgets"][0]["config_fields"],
                          w.config_fields)

    @unittest.skip('Skip to make shippable happy')
    def test_create_dataviz_with_serializer(self):
        json_data = {'selected_external_ds': [{'id': str(self.di.id),
                                               'description': u'testing testing',
                                               'name': u'unit test data import'}],
                     'selected_internal_ds': [{'id': str(self.di.id),
                                               'description': u'testing testing',
                                               'name': u'unit test data import'}],
                     'widgets': [{'viz_datasets': [{'id': str(self.di.id),
                                                    'description': u'testing testing',
                                                    'name': u'unit test data import'}],
                                  'chart_options': {'chart': {'val2': u'key2', 'val1':
                                                              u'key1'}}, 'config_fields':
                                  {'xAxis': {'id': 1, 'name': u'revenue'}}, 'title':
                                  u'some chart', 'viz_type': u'Chart', 'chart_type': None,
                                  'data_fields': []}], 'id': u'54fff3466fe6aa72aa5fe461',
                     'group_name': u'unit test viz', 'created': datetime(2015, 3, 11, 7, 48, 22, 472729),
                     'updated': datetime(2015, 3, 11, 7, 48, 22, 472746)}

        json = JSONRenderer().render(json_data)
        data = JSONParser().parse(BytesIO(json))
        serial = DataVisualizationSerializer(data=data)

        # make sure we aren't adding data imports
        init_count = DataImport.objects.count()
        self.assertTrue(serial.is_valid(), serial.errors)
        serial.save()

        # do we have the data imports
        print(serial.object)
        self.assertEquals(
            serial.object.selected_external_ds[0].id, str(self.di.id))
        self.assertEquals(init_count, DataImport.objects.count())

    @unittest.skip('skip to make shippable happy')
    def test_something(self):

        factory = APIRequestFactory()
        req = factory.get("/api/v1/dataviz/55003aa26fe6aa79516a51a4",
                          format="json")

        resp = UpdateDataViz.as_view()(req, id='55003aa26fe6aa79516a51a4')
        print(resp.data['widgets'][0]['config_fields'])