示例#1
0
    def test_update_location_post(self):
        # create some test data
        l = Location(name="awesome")
        l.save()

        responses.add(responses.GET,
                      self.url_re,
                      body=GEOCODE_BODY,
                      status=200,
                      content_type='application/json')

        factory = APIRequestFactory()

        request = factory.put('/api/v1/location/' + str(l.id) + '/', {
            'address1': 'test',
            'city': 'Palo Alto',
            'state': 'CA',
            'zip': '94043'
        },
                              format='json')
        resp = UpdateLocation.as_view()(request, id=str(l.id))
        self.assertEquals(resp.status_code, status.HTTP_200_OK)

        new_l = Location.objects.get(id=l.id)
        self.assertEquals(new_l.address1, 'test')
        self.assertEquals(new_l.points, {
            'coordinates': [-122.0854212, 37.4229181],
            'type': 'Point'
        })
示例#2
0
 def test_make_obj_return_updated_with_coords(self):
     with patch('mongoengine.Document.save') as mock_save:
         with patch(
                 'maps.data_import.admin_view.SettingsImportSystemView.make_objects'
         ) as mock_obj:
             mock_obj.return_value = [Location(name="test")]
             data = self.mock_NOTMK_json
             view = SettingsImportSystemView()
             rv = view.make_locations(data, {})
             self.assertTrue(mock_obj.called)
             self.assertEqual(
                 rv[0].points,
                 self.mock_NOTMK_json.get('features')[0].get(
                     'geometry').get('coordinates'))
示例#3
0
def get_fields(request):
    model = request.GET.get('model', None)
    results = []
    required_fields = []

    if model == '0':
        #TODO we could do this style to limit the fields to import
        #and to prompt the user for the required fields
        fields = Location.import_fields()
        required_fields = Location.required_import_fields()
    elif model == '1':
        fields = LocationType._fields
    elif model == '2':
        fields = User._fields        
    elif model == '3':
        fields = Taxonomy._fields
    elif model == '4':
        fields = Organization._fields
    elif model == '5':
        fields = Categories._fields

    #alphabetize
    return Response({'fields': sorted(fields.keys()),
                     'required_fields' : required_fields})
示例#4
0
    def test_get_point_location_with_serializer(self):
        lt = LocationType(name="btest_loc_type2", icon="star.png")
        lt.save()
        l = Location(name="test", points=[1, 2], location_type=lt)
        l.save()
        self.assertEquals(l.points, [1, 2])

        serializer = LocationSerializer(l)
        lt.delete()
        l.delete()
        self.assertEquals(serializer.data["points"], [1, 2])
        self.assertEquals(serializer.data["location_type"]['name'],
                          'btest_loc_type2')
        self.assertEquals(serializer.data["location_type"]['icon'], 'star.png')
示例#5
0
    def test_creating_location(self):
        try:
            loc = Location.objects.get(name='test')
            loc.delete()
        except:
            pass

            
        location = Location(name="test", address1="6600 Kalanianaole Hwy",zip="96825",city="Honolulu",
                                    state="HI",phone="039485493",location_type=self.location_type)
        location.save()
        self.assertEqual(location,
                         Location.objects.get(name='test'))
        location.delete()
示例#6
0
    def test_location_get_tags(self):
        for l in Location.objects.filter(name="loc-with-cat2"):
            l.delete()

        loc = Location(name="loc-with-cat2")
        loc.save()
        cat = Categories(name="food-test2", tagged=[loc])
        cat.save()
    
        self.assertIn(cat, loc.tags)
        self.assertEqual(1, len(loc.tags))


        loc.delete()
        cat.delete()
        
        pass
示例#7
0
 def upload_tmk_data(self, f):
     ''' Due to Ainbilities dependence on TMK 
         data it should get special treatment'''
     lt = LocationType.objects.get(name='TMK')
     for feature in f["features"]:
         try:
             location = Location()
             properties = feature["properties"]
             location.name = properties.get("MajorOwner", "NoMajorOwner")+unicode(properties.get("TMK"))
             location.points = feature.get("geometry").get("coordinates")
             location.location_type = lt
             location.save()
         except (mongoengine.ValidationError, mongoengine.OperationError) as e:
             if e == mongoengine.OperationError:
                 print ('bad coordinates')
             elif isinstance(e, mongoengine.errors.NotUniqueError):
                 pass
                 #print("location already loaded skipping")
             else:
                 print(e)
                 print ('invalid geojson, maybe, check error above')
                 print (feature)
示例#8
0
 def test_create_polygon_location(self):
     l = Location(name="test", points=[[[1, 2], [2, 3], [4, 5], [1, 2]]])
     l.save()
     self.assertEquals(l.points, [[[1, 2], [2, 3], [4, 5], [1, 2]]])
     l.delete()
示例#9
0
 def test_create_point_location(self):
     l = Location(name="test", points=[1, 2])
     l.save()
     self.assertEquals(l.points, [1, 2])
     self.assertEquals(l.name, "test")
     l.delete()
示例#10
0
 def location_count(self):
     try:
         return Location.objects(created_by=str(self.id)).count()
     except mongo.ValidationError:
         return 0
示例#11
0
    def setUp(self):
        for cat in Categories.objects.filter(name="test cat"):
            cat.delete()

        self.loc = Location(name="test_loc")
        self.loc.save()
示例#12
0
class TestCategory(unittest.TestCase):
    def setUp(self):
        for cat in Categories.objects.filter(name="test cat"):
            cat.delete()

        self.loc = Location(name="test_loc")
        self.loc.save()

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

    def test_cats_number_using(self):
        cat = Categories(name="test cat", tagged=[self.loc])
        cat.save()
        self.assertEqual(1, cat.number_using)
        cat.delete()

    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()

    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()

    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()

    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()

    def test_add_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=[di])
        cat.save()

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

        cat.add_object(self.loc)

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

        cat.delete()
        di.delete()

    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()

    def test_cats_get_all_tagged_handles_missing(self):
        tagged = Categories.objects_with("I'm not there")
        self.assertEqual(tagged, [])