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' })
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'))
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})
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')
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()
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
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)
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()
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()
def location_count(self): try: return Location.objects(created_by=str(self.id)).count() except mongo.ValidationError: return 0
def setUp(self): for cat in Categories.objects.filter(name="test cat"): cat.delete() self.loc = Location(name="test_loc") self.loc.save()
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, [])