From d5499471683d52a4f9db391becbc8a7bb56daf7d Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 09:44:26 -0600 Subject: [PATCH 01/25] feat: add missing fields --- db/location.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/db/location.py b/db/location.py index 397fba62c..5c6c48fe4 100644 --- a/db/location.py +++ b/db/location.py @@ -53,6 +53,11 @@ class Location(Base, AutoBaseMixin, ReleaseMixin): quad_name: Mapped[str] = mapped_column(String(100), nullable=True) notes: Mapped[str] = mapped_column(Text, nullable=True) nma_notes_location: Mapped[str] = mapped_column(Text, nullable=True) + nma_coordinate_notes: Mapped[str] = mapped_column(Text, nullable=True) + elevation_accuracy: Mapped[float] = mapped_column(nullable=True) + elevation_method: Mapped[str] = lexicon_term(nullable=True) + coordinate_accuracy: Mapped[str] = lexicon_term(nullable=True) + coordinate_method: Mapped[str] = lexicon_term(nullable=True) # --- Relationship Definitions --- thing_associations: Mapped[list["LocationThingAssociation"]] = relationship( From 3bc45f073a9f189c6095f6a0fed4ff9563f1afc2 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 11:31:50 -0600 Subject: [PATCH 02/25] feat: add missing fields --- db/location.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/db/location.py b/db/location.py index 5c6c48fe4..52b0e4b27 100644 --- a/db/location.py +++ b/db/location.py @@ -56,7 +56,8 @@ class Location(Base, AutoBaseMixin, ReleaseMixin): nma_coordinate_notes: Mapped[str] = mapped_column(Text, nullable=True) elevation_accuracy: Mapped[float] = mapped_column(nullable=True) elevation_method: Mapped[str] = lexicon_term(nullable=True) - coordinate_accuracy: Mapped[str] = lexicon_term(nullable=True) + coordinate_accuracy: Mapped[float] = mapped_column(nullable=True) + coordinate_accuracy_unit: Mapped[str] = lexicon_term(nullable=True) coordinate_method: Mapped[str] = lexicon_term(nullable=True) # --- Relationship Definitions --- From 8936a2b4813a0d5fba3cb08ac6aeaf913eb738df Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 11:32:25 -0600 Subject: [PATCH 03/25] feat: add missing fields to the CREATE schema --- schemas/location.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/schemas/location.py b/schemas/location.py index aa8074e8c..61e96dcf6 100644 --- a/schemas/location.py +++ b/schemas/location.py @@ -38,6 +38,11 @@ class CreateLocation(BaseCreateModel): notes: str | None = None point: str # point is required and should be in WKT format release_status: str | None = "draft" + elevation_accuracy: float | None = None + elevation_method: str | None = None + coordinate_accuracy: float | None = None + coordinate_accuracy_unit: str | None = None + coordinate_method: str | None = None @classmethod @field_validator("point") From 011fa73927c3f393614f51d5794034891b1b174e Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 12:25:40 -0600 Subject: [PATCH 04/25] feat: add missing fields to the RESPONSE schema --- schemas/location.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/schemas/location.py b/schemas/location.py index 61e96dcf6..d012ba1ca 100644 --- a/schemas/location.py +++ b/schemas/location.py @@ -65,9 +65,14 @@ class LocationResponse(BaseResponseModel): Response schema for sample location details. """ - name: str | None = None + name: str | None point: str - release_status: str + release_status: str | None + elevation_accuracy: float | None + elevation_method: str | None + coordinate_accuracy: float | None + coordinate_accuracy_unit: str | None + coordinate_method: str | None @field_validator("point", mode="before") def point_to_wkt(cls, value): From fa9577869d167409570c523cb5a2114f1c124005 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 12:26:37 -0600 Subject: [PATCH 05/25] feat: add missing fields to the RESPONSE schema --- schemas/location.py | 1 + 1 file changed, 1 insertion(+) diff --git a/schemas/location.py b/schemas/location.py index d012ba1ca..884a59986 100644 --- a/schemas/location.py +++ b/schemas/location.py @@ -73,6 +73,7 @@ class LocationResponse(BaseResponseModel): coordinate_accuracy: float | None coordinate_accuracy_unit: str | None coordinate_method: str | None + notes: str | None @field_validator("point", mode="before") def point_to_wkt(cls, value): From 1f796f0cefef2ef350537a22cd7b095edd647584 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 12:42:07 -0600 Subject: [PATCH 06/25] feat: add missing fields to the CREATE schema --- schemas/location.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/schemas/location.py b/schemas/location.py index 884a59986..d0d85a6fe 100644 --- a/schemas/location.py +++ b/schemas/location.py @@ -43,6 +43,9 @@ class CreateLocation(BaseCreateModel): coordinate_accuracy: float | None = None coordinate_accuracy_unit: str | None = None coordinate_method: str | None = None + state: str | None = None + county: str | None = None + quad_name: str | None = None @classmethod @field_validator("point") From 75c4782313b0febdd8f6ac85104f02056e3d78cd Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 12:43:20 -0600 Subject: [PATCH 07/25] refactor: relocate `notes` field so it matches the field order in the CREATE response --- schemas/location.py | 1 + 1 file changed, 1 insertion(+) diff --git a/schemas/location.py b/schemas/location.py index d0d85a6fe..6283fe1db 100644 --- a/schemas/location.py +++ b/schemas/location.py @@ -69,6 +69,7 @@ class LocationResponse(BaseResponseModel): """ name: str | None + notes: str | None point: str release_status: str | None elevation_accuracy: float | None From afe97abef65a4a7990b61efff68581ca1fa54b56 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 12:43:46 -0600 Subject: [PATCH 08/25] feat: add missing fields to the RESPONSE schema --- schemas/location.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/schemas/location.py b/schemas/location.py index 6283fe1db..86735adeb 100644 --- a/schemas/location.py +++ b/schemas/location.py @@ -77,7 +77,9 @@ class LocationResponse(BaseResponseModel): coordinate_accuracy: float | None coordinate_accuracy_unit: str | None coordinate_method: str | None - notes: str | None + state: str | None + county: str | None + quad_name: str | None @field_validator("point", mode="before") def point_to_wkt(cls, value): From f83b1277b2cd26abc871569d95a8805175f0402a Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 12:44:28 -0600 Subject: [PATCH 09/25] feat: add missing fields to the UPDATE schema --- schemas/location.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/schemas/location.py b/schemas/location.py index 86735adeb..c3d12e16c 100644 --- a/schemas/location.py +++ b/schemas/location.py @@ -111,6 +111,14 @@ class UpdateLocation(BaseUpdateModel): name: str | None = None notes: str | None = None point: str | None = None + release_status: str | None = None + elevation_accuracy: float | None = None + elevation_method: str | None = None + coordinate_accuracy: float | None = None + coordinate_accuracy_unit: str | None = None + coordinate_method: str | None = None + county: str | None = None + quad_name: str | None = None # ============= EOF ============================================= From 1f359ebf2f2e7c9b344df1e6cd9283041e31095a Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 12:48:37 -0600 Subject: [PATCH 10/25] refactor: remove `county` and `quad_name` fields from UPDATE schema. --- schemas/location.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/schemas/location.py b/schemas/location.py index c3d12e16c..61b361d89 100644 --- a/schemas/location.py +++ b/schemas/location.py @@ -117,8 +117,6 @@ class UpdateLocation(BaseUpdateModel): coordinate_accuracy: float | None = None coordinate_accuracy_unit: str | None = None coordinate_method: str | None = None - county: str | None = None - quad_name: str | None = None # ============= EOF ============================================= From 7ccbb4811bd67b61bcd1170f1c1723bce1fe9dab Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 13:22:51 -0600 Subject: [PATCH 11/25] refactor: remove `state`, `county`, `quad_name` fields from CREATE schema --- schemas/location.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/schemas/location.py b/schemas/location.py index 61b361d89..a72400cbb 100644 --- a/schemas/location.py +++ b/schemas/location.py @@ -43,9 +43,6 @@ class CreateLocation(BaseCreateModel): coordinate_accuracy: float | None = None coordinate_accuracy_unit: str | None = None coordinate_method: str | None = None - state: str | None = None - county: str | None = None - quad_name: str | None = None @classmethod @field_validator("point") From 956eb6579328a455494e4600a2a71bf14f279b38 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 13:36:05 -0600 Subject: [PATCH 12/25] feat: add missing payload fields and `assert` statements to the POST tests --- tests/test_location.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/test_location.py b/tests/test_location.py index 6d4945949..35dca8353 100644 --- a/tests/test_location.py +++ b/tests/test_location.py @@ -43,8 +43,14 @@ def override_dependencies_fixture(): def test_add_location(): payload = { "name": "test location", + "notes": "these are some test notes", "point": "POINT Z (10.1 10.1 0)", "release_status": "draft", + "elevation_accuracy": 1.0, + "elevation_method": "GPS", + "coordinate_accuracy": 5.0, + "coordinate_accuracy_unit": "ft", + "coordinate_method": "GPS", } response = client.post("/location", json=payload) @@ -53,8 +59,14 @@ def test_add_location(): assert "id" in data assert "created_at" in data assert data["name"] == payload["name"] + assert data["notes"] == payload["notes"] assert data["point"] == payload["point"] assert data["release_status"] == payload["release_status"] + assert data["elevation_accuracy"] == payload["elevation_accuracy"] + assert data["elevation_method"] == payload["elevation_method"] + assert data["coordinate_accuracy"] == payload["coordinate_accuracy"] + assert data["coordinate_accuracy_unit"] == payload["coordinate_accuracy_unit"] + assert data["coordinate_method"] == payload["coordinate_method"] # cleanup after test cleanup_post_test(Location, data["id"]) From 2ced4020968456c67abd1dd7d1642012fd4036ac Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 13:53:47 -0600 Subject: [PATCH 13/25] refactor: reorder payload fields to match UPDATE schema --- tests/test_location.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_location.py b/tests/test_location.py index 35dca8353..67050892b 100644 --- a/tests/test_location.py +++ b/tests/test_location.py @@ -77,6 +77,8 @@ def test_add_location(): def test_update_location(location): payload = { + "name": "patched name", + "notes": "these are some patched notes", "point": "POINT Z (10.1 20.2 0)", "release_status": "draft", "name": "patched name", From af1f7bb408dfcf65a094138b0526f400a466aedd Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 13:54:40 -0600 Subject: [PATCH 14/25] feat: add missing payload fields --- tests/test_location.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/test_location.py b/tests/test_location.py index 67050892b..8f3bf1fe7 100644 --- a/tests/test_location.py +++ b/tests/test_location.py @@ -81,7 +81,11 @@ def test_update_location(location): "notes": "these are some patched notes", "point": "POINT Z (10.1 20.2 0)", "release_status": "draft", - "name": "patched name", + "elevation_accuracy": 2.0, + "elevation_method": "Total Station", + "coordinate_accuracy": 10.0, + "coordinate_accuracy_unit": "ft", + "coordinate_method": "Total Station", } response = client.patch(f"/location/{location.id}", json=payload) assert response.status_code == 200 From ed5f147b0bc6ebeffdfaf42c4703a1b2f86cd6fb Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 14:07:28 -0600 Subject: [PATCH 15/25] feat: add missing `assert` statements to PATCH test --- tests/test_location.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/test_location.py b/tests/test_location.py index 8f3bf1fe7..62de2cf7f 100644 --- a/tests/test_location.py +++ b/tests/test_location.py @@ -91,9 +91,15 @@ def test_update_location(location): assert response.status_code == 200 data = response.json() assert data["id"] == location.id + assert data["name"] == payload["name"] + assert data["notes"] == payload["notes"] assert data["point"] == payload["point"] assert data["release_status"] == payload["release_status"] - assert data["name"] == payload["name"] + assert data["elevation_accuracy"] == payload["elevation_accuracy"] + assert data["elevation_method"] == payload["elevation_method"] + assert data["coordinate_accuracy"] == payload["coordinate_accuracy"] + assert data["coordinate_accuracy_unit"] == payload["coordinate_accuracy_unit"] + assert data["coordinate_method"] == payload["coordinate_method"] # cleanup after test cleanup_patch_test(Location, payload, location) From c987748c5030591f2017d593c4c06f74650bdcbb Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 14:14:53 -0600 Subject: [PATCH 16/25] feat: add missing fields to location fixture in support of updating the GET test for location --- tests/conftest.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 5e9283d6d..ba3508bac 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -9,7 +9,18 @@ def location(): with session_ctx() as session: loc = Location( - name="first location", release_status="draft", point="POINT(0 0 0)" + name="first location", + notes="these are some test notes", + point="POINT(0 0 0)", + release_status="draft", + elevation_accuracy=100, + elevation_method="GPS", + coordinate_accuracy=50, + coordinate_accuracy_unit="ft", + coordinate_method="GPS", + state="New Mexico", + county="some NM county", + quad_name="some NM quad" ) session.add(loc) session.commit() From 28071fa86a745765c73ff464077964b73ec002b5 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 14:17:25 -0600 Subject: [PATCH 17/25] feat: add missing `assert` statements to GET test --- tests/test_location.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/test_location.py b/tests/test_location.py index 62de2cf7f..dbed7f868 100644 --- a/tests/test_location.py +++ b/tests/test_location.py @@ -135,9 +135,17 @@ def test_get_locations(location): "+00:00", "Z" ) assert data["items"][0]["name"] == location.name + assert data["items"][0]["notes"] == location.notes assert data["items"][0]["point"] == to_shape(location.point).wkt assert data["items"][0]["release_status"] == location.release_status - + assert data["items"][0]["elevation_accuracy"] == location.elevation_accuracy + assert data["items"][0]["elevation_method"] == location.elevation_method + assert data["items"][0]["coordinate_accuracy"] == location.coordinate_accuracy + assert data["items"][0]["coordinate_accuracy_unit"] == location.coordinate_accuracy_unit + assert data["items"][0]["coordinate_method"] == location.coordinate_method + assert data["items"][0]["state"] == location.state + assert data["items"][0]["county"] == location.county + assert data["items"][0]["quad_name"] == location.quad_name def test_get_location_by_id(location): response = client.get(f"/location/{location.id}") From 46101059ed551596607b70da1e35f05d60f81d82 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 15:36:29 -0600 Subject: [PATCH 18/25] feat: add missing fields to `make_location` function --- transfers/util.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/transfers/util.py b/transfers/util.py index 4b4cec3bb..e7ec8a49f 100644 --- a/transfers/util.py +++ b/transfers/util.py @@ -207,15 +207,17 @@ def make_location(row: pd.Series) -> Location: # created_at = row.DateCreated location = Location( - # nma_pk_location=row.LocationId, + nma_pk_location=row.LocationId, name=row.PointID, point=transformed_point.wkt, release_status="public" if row.PublicRelease else "private", - # elevation_accuracy=row.AltitudeAccuracy, - # elevation_method=row.AltitudeMethod, + elevation_accuracy=row.AltitudeAccuracy, + elevation_method=row.AltitudeMethod, # created_at=created_at, - # point_accuracy=row.CoordinateAccuracy, - # point_method=row.CoordinateMethod, + coordinate_accuracy=row.CoordinateAccuracy, + coordinate_method=row.CoordinateMethod, + nma_coordinate_notes=row.CoordinateNotes, + nma_notes_location=row.LocationNotes ) return location From da0bfa11f69464f03f03cd6f6b27a56fba1b3652 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 15:50:18 -0600 Subject: [PATCH 19/25] refactor: add note about the mapping of PointID to location.name --- transfers/util.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/transfers/util.py b/transfers/util.py index e7ec8a49f..0757c8b17 100644 --- a/transfers/util.py +++ b/transfers/util.py @@ -208,7 +208,10 @@ def make_location(row: pd.Series) -> Location: location = Location( nma_pk_location=row.LocationId, + + # TODO: determine if PointID should map to location.name or thing.name or if the Location table needs a name field at all. name=row.PointID, + point=transformed_point.wkt, release_status="public" if row.PublicRelease else "private", elevation_accuracy=row.AltitudeAccuracy, From 5ac0efa623017b2b776613820db4ab278cb5ce90 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Tue, 9 Sep 2025 22:13:50 +0000 Subject: [PATCH 20/25] Formatting changes --- tests/conftest.py | 2 +- tests/test_location.py | 6 +++++- transfers/util.py | 4 +--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index ba3508bac..00b3d2188 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -20,7 +20,7 @@ def location(): coordinate_method="GPS", state="New Mexico", county="some NM county", - quad_name="some NM quad" + quad_name="some NM quad", ) session.add(loc) session.commit() diff --git a/tests/test_location.py b/tests/test_location.py index dbed7f868..53d487a24 100644 --- a/tests/test_location.py +++ b/tests/test_location.py @@ -141,12 +141,16 @@ def test_get_locations(location): assert data["items"][0]["elevation_accuracy"] == location.elevation_accuracy assert data["items"][0]["elevation_method"] == location.elevation_method assert data["items"][0]["coordinate_accuracy"] == location.coordinate_accuracy - assert data["items"][0]["coordinate_accuracy_unit"] == location.coordinate_accuracy_unit + assert ( + data["items"][0]["coordinate_accuracy_unit"] + == location.coordinate_accuracy_unit + ) assert data["items"][0]["coordinate_method"] == location.coordinate_method assert data["items"][0]["state"] == location.state assert data["items"][0]["county"] == location.county assert data["items"][0]["quad_name"] == location.quad_name + def test_get_location_by_id(location): response = client.get(f"/location/{location.id}") assert response.status_code == 200 diff --git a/transfers/util.py b/transfers/util.py index 0757c8b17..44980a212 100644 --- a/transfers/util.py +++ b/transfers/util.py @@ -208,10 +208,8 @@ def make_location(row: pd.Series) -> Location: location = Location( nma_pk_location=row.LocationId, - # TODO: determine if PointID should map to location.name or thing.name or if the Location table needs a name field at all. name=row.PointID, - point=transformed_point.wkt, release_status="public" if row.PublicRelease else "private", elevation_accuracy=row.AltitudeAccuracy, @@ -220,7 +218,7 @@ def make_location(row: pd.Series) -> Location: coordinate_accuracy=row.CoordinateAccuracy, coordinate_method=row.CoordinateMethod, nma_coordinate_notes=row.CoordinateNotes, - nma_notes_location=row.LocationNotes + nma_notes_location=row.LocationNotes, ) return location From b7c8f8f9537931f3d3fe6c068c6a16442f43e1a4 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Wed, 10 Sep 2025 10:18:24 -0600 Subject: [PATCH 21/25] refactor: remove `coordiante_accuracy_unit` field from the database model, schema model, `test_location.py` file, and `conftest.py` file. --- db/location.py | 1 - db/thing.py | 3 +++ schemas/location.py | 3 --- tests/conftest.py | 1 - tests/test_location.py | 8 -------- 5 files changed, 3 insertions(+), 13 deletions(-) diff --git a/db/location.py b/db/location.py index 52b0e4b27..f54d7a1f7 100644 --- a/db/location.py +++ b/db/location.py @@ -57,7 +57,6 @@ class Location(Base, AutoBaseMixin, ReleaseMixin): elevation_accuracy: Mapped[float] = mapped_column(nullable=True) elevation_method: Mapped[str] = lexicon_term(nullable=True) coordinate_accuracy: Mapped[float] = mapped_column(nullable=True) - coordinate_accuracy_unit: Mapped[str] = lexicon_term(nullable=True) coordinate_method: Mapped[str] = lexicon_term(nullable=True) # --- Relationship Definitions --- diff --git a/db/thing.py b/db/thing.py index cbeed6c59..b6117b9d0 100644 --- a/db/thing.py +++ b/db/thing.py @@ -18,11 +18,14 @@ from sqlalchemy.orm import relationship, mapped_column, Mapped from sqlalchemy_utils import TSVectorType +from uuid import UUID + from db import lexicon_term from db.base import AutoBaseMixin, Base, ReleaseMixin class Thing(Base, AutoBaseMixin, ReleaseMixin): + name = mapped_column(String(255), nullable=False) description = mapped_column(String(500)) thing_type = lexicon_term(nullable=True) diff --git a/schemas/location.py b/schemas/location.py index a72400cbb..d98235108 100644 --- a/schemas/location.py +++ b/schemas/location.py @@ -41,7 +41,6 @@ class CreateLocation(BaseCreateModel): elevation_accuracy: float | None = None elevation_method: str | None = None coordinate_accuracy: float | None = None - coordinate_accuracy_unit: str | None = None coordinate_method: str | None = None @classmethod @@ -72,7 +71,6 @@ class LocationResponse(BaseResponseModel): elevation_accuracy: float | None elevation_method: str | None coordinate_accuracy: float | None - coordinate_accuracy_unit: str | None coordinate_method: str | None state: str | None county: str | None @@ -112,7 +110,6 @@ class UpdateLocation(BaseUpdateModel): elevation_accuracy: float | None = None elevation_method: str | None = None coordinate_accuracy: float | None = None - coordinate_accuracy_unit: str | None = None coordinate_method: str | None = None diff --git a/tests/conftest.py b/tests/conftest.py index 00b3d2188..040e04f6c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -16,7 +16,6 @@ def location(): elevation_accuracy=100, elevation_method="GPS", coordinate_accuracy=50, - coordinate_accuracy_unit="ft", coordinate_method="GPS", state="New Mexico", county="some NM county", diff --git a/tests/test_location.py b/tests/test_location.py index 53d487a24..c8a24366b 100644 --- a/tests/test_location.py +++ b/tests/test_location.py @@ -49,7 +49,6 @@ def test_add_location(): "elevation_accuracy": 1.0, "elevation_method": "GPS", "coordinate_accuracy": 5.0, - "coordinate_accuracy_unit": "ft", "coordinate_method": "GPS", } response = client.post("/location", json=payload) @@ -65,7 +64,6 @@ def test_add_location(): assert data["elevation_accuracy"] == payload["elevation_accuracy"] assert data["elevation_method"] == payload["elevation_method"] assert data["coordinate_accuracy"] == payload["coordinate_accuracy"] - assert data["coordinate_accuracy_unit"] == payload["coordinate_accuracy_unit"] assert data["coordinate_method"] == payload["coordinate_method"] # cleanup after test @@ -84,7 +82,6 @@ def test_update_location(location): "elevation_accuracy": 2.0, "elevation_method": "Total Station", "coordinate_accuracy": 10.0, - "coordinate_accuracy_unit": "ft", "coordinate_method": "Total Station", } response = client.patch(f"/location/{location.id}", json=payload) @@ -98,7 +95,6 @@ def test_update_location(location): assert data["elevation_accuracy"] == payload["elevation_accuracy"] assert data["elevation_method"] == payload["elevation_method"] assert data["coordinate_accuracy"] == payload["coordinate_accuracy"] - assert data["coordinate_accuracy_unit"] == payload["coordinate_accuracy_unit"] assert data["coordinate_method"] == payload["coordinate_method"] # cleanup after test @@ -141,10 +137,6 @@ def test_get_locations(location): assert data["items"][0]["elevation_accuracy"] == location.elevation_accuracy assert data["items"][0]["elevation_method"] == location.elevation_method assert data["items"][0]["coordinate_accuracy"] == location.coordinate_accuracy - assert ( - data["items"][0]["coordinate_accuracy_unit"] - == location.coordinate_accuracy_unit - ) assert data["items"][0]["coordinate_method"] == location.coordinate_method assert data["items"][0]["state"] == location.state assert data["items"][0]["county"] == location.county From e86a0b0f0d5940e8b047f3c53689fe63ba6706ee Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Wed, 10 Sep 2025 11:09:39 -0600 Subject: [PATCH 22/25] feat: add missing fields to `test_get_location_by_id` function. --- tests/test_location.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/test_location.py b/tests/test_location.py index c8a24366b..021ba3516 100644 --- a/tests/test_location.py +++ b/tests/test_location.py @@ -152,6 +152,13 @@ def test_get_location_by_id(location): assert data["name"] == location.name assert data["point"] == to_shape(location.point).wkt assert data["release_status"] == location.release_status + assert data["elevation_accuracy"] == location.elevation_accuracy + assert data["elevation_method"] == location.elevation_method + assert data["coordinate_accuracy"] == location.coordinate_accuracy + assert data["coordinate_method"] == location.coordinate_method + assert data["state"] == location.state + assert data["county"] == location.county + assert data["quad_name"] == location.quad_name def test_get_sample_by_id_404_not_found(location): From f5f4af28e898fd233160cde3a5bf743d1ae73a66 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Wed, 10 Sep 2025 11:12:41 -0600 Subject: [PATCH 23/25] refactor: update `county` name to a valid lexicon term. --- tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 040e04f6c..309ef788d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -18,7 +18,7 @@ def location(): coordinate_accuracy=50, coordinate_method="GPS", state="New Mexico", - county="some NM county", + county="Socorro", quad_name="some NM quad", ) session.add(loc) From 7bdf53da0c7a4dcb0554ceb9aa5433a14ec25054 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Thu, 11 Sep 2025 10:39:40 -0600 Subject: [PATCH 24/25] refactor: update lexicon-referenced fields with valid lexicon values --- tests/conftest.py | 4 ++-- tests/test_location.py | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 0c1301703..85092920e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -14,9 +14,9 @@ def location(): point="POINT(0 0 0)", release_status="draft", elevation_accuracy=100, - elevation_method="GPS", + elevation_method="Survey-grade GPS", coordinate_accuracy=50, - coordinate_method="GPS", + coordinate_method="GPS, uncorrected", state="New Mexico", county="Socorro", quad_name="some NM quad", diff --git a/tests/test_location.py b/tests/test_location.py index 021ba3516..a27ddf775 100644 --- a/tests/test_location.py +++ b/tests/test_location.py @@ -47,9 +47,9 @@ def test_add_location(): "point": "POINT Z (10.1 10.1 0)", "release_status": "draft", "elevation_accuracy": 1.0, - "elevation_method": "GPS", + "elevation_method": "Survey-grade GPS", "coordinate_accuracy": 5.0, - "coordinate_method": "GPS", + "coordinate_method": "GPS, uncorrected", } response = client.post("/location", json=payload) @@ -80,9 +80,9 @@ def test_update_location(location): "point": "POINT Z (10.1 20.2 0)", "release_status": "draft", "elevation_accuracy": 2.0, - "elevation_method": "Total Station", + "elevation_method": "Survey-grade GPS", "coordinate_accuracy": 10.0, - "coordinate_method": "Total Station", + "coordinate_method": "GPS, uncorrected", } response = client.patch(f"/location/{location.id}", json=payload) assert response.status_code == 200 From c17ecb391a9828e27089c2a2f8242b7f2338e758 Mon Sep 17 00:00:00 2001 From: ksmuczynski Date: Thu, 11 Sep 2025 10:42:07 -0600 Subject: [PATCH 25/25] refactor: populate db credentials file for docker --- .env.example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 4be3e048f..aebc40609 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ DB_DRIVER=postgres -POSTGRES_USER= -POSTGRES_PASSWORD= +POSTGRES_USER=admin +POSTGRES_PASSWORD=password POSTGRES_DB= # asset storage