diff --git a/docs/source/docker.rst b/docs/source/docker.rst index e46c5d146..f77a811d6 100644 --- a/docs/source/docker.rst +++ b/docs/source/docker.rst @@ -54,7 +54,7 @@ To mimic this functionality, this mock provides a target manager container which To add a database, make a request to the following endpoint against the target manager container: .. autoflask:: mock_vws._flask_server.target_manager:TARGET_MANAGER_FLASK_APP - :endpoints: create_database + :endpoints: create_cloud_database For example, with the containers set up as in :ref:`creating-containers`, use ``curl``: diff --git a/pyproject.toml b/pyproject.toml index 466ed3297..c5a2f5685 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -105,7 +105,7 @@ optional-dependencies.dev = [ "vulture==2.14", "vws-python==2026.2.15", "vws-test-fixtures==2023.3.5", - "vws-web-tools==2026.2.17.1", + "vws-web-tools==2026.2.20", "yamlfix==1.19.1", "zizmor==1.22.0", ] diff --git a/secrets.tar.gpg b/secrets.tar.gpg index a21cf43fd..32c9b9c6f 100644 Binary files a/secrets.tar.gpg and b/secrets.tar.gpg differ diff --git a/src/mock_vws/_flask_server/target_manager.py b/src/mock_vws/_flask_server/target_manager.py index 06948fd5c..856738050 100644 --- a/src/mock_vws/_flask_server/target_manager.py +++ b/src/mock_vws/_flask_server/target_manager.py @@ -70,7 +70,7 @@ def delete_database(database_name: str) -> Response: try: (matching_database,) = { database - for database in TARGET_MANAGER.databases + for database in TARGET_MANAGER.cloud_databases if database_name == database.database_name } except ValueError: @@ -82,9 +82,11 @@ def delete_database(database_name: str) -> Response: @TARGET_MANAGER_FLASK_APP.route(rule="/databases", methods=[HTTPMethod.GET]) @beartype -def get_databases() -> Response: +def get_cloud_databases() -> Response: """Return a list of all databases.""" - databases = [database.to_dict() for database in TARGET_MANAGER.databases] + databases = [ + database.to_dict() for database in TARGET_MANAGER.cloud_databases + ] return Response( response=json.dumps(obj=databases), status=HTTPStatus.OK, @@ -93,7 +95,7 @@ def get_databases() -> Response: @TARGET_MANAGER_FLASK_APP.route(rule="/databases", methods=[HTTPMethod.POST]) @beartype -def create_database() -> Response: +def create_cloud_database() -> Response: """Create a new database. :reqheader Content-Type: application/json @@ -193,7 +195,7 @@ def create_target(database_name: str) -> Response: """Create a new target in a given database.""" (database,) = ( database - for database in TARGET_MANAGER.databases + for database in TARGET_MANAGER.cloud_databases if database.database_name == database_name ) request_json = json.loads(s=request.data) @@ -229,7 +231,7 @@ def delete_target(database_name: str, target_id: str) -> Response: """Delete a target.""" (database,) = ( database - for database in TARGET_MANAGER.databases + for database in TARGET_MANAGER.cloud_databases if database.database_name == database_name ) target = database.get_target(target_id=target_id) @@ -255,7 +257,7 @@ def update_target(database_name: str, target_id: str) -> Response: """Update a target.""" (database,) = ( database - for database in TARGET_MANAGER.databases + for database in TARGET_MANAGER.cloud_databases if database.database_name == database_name ) target = database.get_target(target_id=target_id) diff --git a/src/mock_vws/_flask_server/vwq.py b/src/mock_vws/_flask_server/vwq.py index d9eb1fc43..d8ef38350 100644 --- a/src/mock_vws/_flask_server/vwq.py +++ b/src/mock_vws/_flask_server/vwq.py @@ -63,7 +63,7 @@ class VWQSettings(BaseSettings): @beartype -def get_all_databases() -> set[CloudDatabase]: +def get_all_cloud_databases() -> set[CloudDatabase]: """Get all database objects from the target manager back-end.""" settings = VWQSettings.model_validate(obj={}) response = requests.get( @@ -132,7 +132,7 @@ def query() -> Response: settings = VWQSettings.model_validate(obj={}) query_match_checker = settings.query_image_matcher.to_image_matcher() - databases = get_all_databases() + databases = get_all_cloud_databases() request_body = request.stream.read() run_query_validators( request_headers=dict(request.headers), diff --git a/src/mock_vws/_flask_server/vws.py b/src/mock_vws/_flask_server/vws.py index a6e516842..d85d0701e 100644 --- a/src/mock_vws/_flask_server/vws.py +++ b/src/mock_vws/_flask_server/vws.py @@ -86,7 +86,7 @@ class VWSSettings(BaseSettings): @beartype -def get_all_databases() -> set[CloudDatabase]: +def get_all_cloud_databases() -> set[CloudDatabase]: """Get all database objects from the task manager back-end.""" settings = VWSSettings.model_validate(obj={}) timeout_seconds = 30 @@ -130,7 +130,7 @@ def set_terminate_wsgi_input() -> None: @beartype def validate_request() -> None: """Run validators on the request.""" - databases = get_all_databases() + databases = get_all_cloud_databases() run_services_validators( request_headers=dict(request.headers), request_body=request.data, @@ -172,7 +172,7 @@ def add_target() -> Response: https://developer.vuforia.com/library/web-api/cloud-targets-web-services-api#add """ settings = VWSSettings.model_validate(obj={}) - databases = get_all_databases() + databases = get_all_cloud_databases() database = get_database_matching_server_keys( request_headers=dict(request.headers), request_body=request.data, @@ -245,7 +245,7 @@ def get_target(target_id: str) -> Response: Fake implementation of https://developer.vuforia.com/library/web-api/cloud-targets-web-services-api#target-record """ - databases = get_all_databases() + databases = get_all_cloud_databases() database = get_database_matching_server_keys( request_headers=dict(request.headers), request_body=request.data, @@ -302,7 +302,7 @@ def delete_target(target_id: str) -> Response: https://developer.vuforia.com/library/web-api/cloud-targets-web-services-api#delete """ settings = VWSSettings.model_validate(obj={}) - databases = get_all_databases() + databases = get_all_cloud_databases() database = get_database_matching_server_keys( request_headers=dict(request.headers), request_body=request.data, @@ -402,7 +402,7 @@ def database_summary() -> Response: Fake implementation of https://developer.vuforia.com/library/web-api/cloud-targets-web-services-api#summary-report """ - databases = get_all_databases() + databases = get_all_cloud_databases() database = get_database_matching_server_keys( request_headers=dict(request.headers), request_body=request.data, @@ -457,7 +457,7 @@ def target_summary(target_id: str) -> Response: Fake implementation of https://developer.vuforia.com/library/web-api/cloud-targets-web-services-api#retrieve-report """ - databases = get_all_databases() + databases = get_all_cloud_databases() database = get_database_matching_server_keys( request_headers=dict(request.headers), request_body=request.data, @@ -511,7 +511,7 @@ def get_duplicates(target_id: str) -> Response: Fake implementation of https://developer.vuforia.com/library/web-api/cloud-targets-web-services-api#check """ - databases = get_all_databases() + databases = get_all_cloud_databases() settings = VWSSettings.model_validate(obj={}) database = get_database_matching_server_keys( request_headers=dict(request.headers), @@ -570,7 +570,7 @@ def target_list() -> Response: Fake implementation of https://developer.vuforia.com/library/web-api/cloud-targets-web-services-api#details-list """ - databases = get_all_databases() + databases = get_all_cloud_databases() database = get_database_matching_server_keys( request_headers=dict(request.headers), request_body=request.data, @@ -616,7 +616,7 @@ def update_target(target_id: str) -> Response: # We do not use ``request.get_json(force=True)`` because this only works # when the content type is given as ``application/json``. request_json = json.loads(s=request.data) - databases = get_all_databases() + databases = get_all_cloud_databases() database = get_database_matching_server_keys( request_headers=dict(request.headers), request_body=request.data, diff --git a/src/mock_vws/_requests_mock_server/mock_web_query_api.py b/src/mock_vws/_requests_mock_server/mock_web_query_api.py index 8206a6d10..e2626a25a 100644 --- a/src/mock_vws/_requests_mock_server/mock_web_query_api.py +++ b/src/mock_vws/_requests_mock_server/mock_web_query_api.py @@ -122,7 +122,7 @@ def query(self, request: PreparedRequest) -> _ResponseType: request_headers=request.headers, request_body=_body_bytes(request=request), request_method=request.method or "", - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) except ValidatorError as exc: return exc.status_code, exc.headers, exc.response_text @@ -132,7 +132,7 @@ def query(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, query_match_checker=self._query_match_checker, ) diff --git a/src/mock_vws/_requests_mock_server/mock_web_services_api.py b/src/mock_vws/_requests_mock_server/mock_web_services_api.py index 8c0c770d6..bbd782c24 100644 --- a/src/mock_vws/_requests_mock_server/mock_web_services_api.py +++ b/src/mock_vws/_requests_mock_server/mock_web_services_api.py @@ -164,7 +164,7 @@ def add_target(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) except ValidatorError as exc: return exc.status_code, exc.headers, exc.response_text @@ -174,7 +174,7 @@ def add_target(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) request_json: dict[str, Any] = json.loads(s=request.body or b"") @@ -239,7 +239,7 @@ def delete_target(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) except ValidatorError as exc: return exc.status_code, exc.headers, exc.response_text @@ -249,7 +249,7 @@ def delete_target(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) target_id = request.path_url.split(sep="/")[-1] @@ -314,7 +314,7 @@ def generate_vumark_instance( request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) accept = dict(request.headers).get("Accept", "") @@ -360,7 +360,7 @@ def database_summary(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) except ValidatorError as exc: return exc.status_code, exc.headers, exc.response_text @@ -370,7 +370,7 @@ def database_summary(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) date = email.utils.formatdate( @@ -421,7 +421,7 @@ def target_list(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) except ValidatorError as exc: return exc.status_code, exc.headers, exc.response_text @@ -431,7 +431,7 @@ def target_list(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) date = email.utils.formatdate( @@ -478,7 +478,7 @@ def get_target(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) except ValidatorError as exc: return exc.status_code, exc.headers, exc.response_text @@ -488,7 +488,7 @@ def get_target(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) target_id = request.path_url.split(sep="/")[-1] target = database.get_target(target_id=target_id) @@ -544,7 +544,7 @@ def get_duplicates(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) except ValidatorError as exc: return exc.status_code, exc.headers, exc.response_text @@ -554,7 +554,7 @@ def get_duplicates(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) target_id = request.path_url.split(sep="/")[-1] target = database.get_target(target_id=target_id) @@ -615,7 +615,7 @@ def update_target(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) except ValidatorError as exc: return exc.status_code, exc.headers, exc.response_text @@ -625,7 +625,7 @@ def update_target(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) target_id = request.path_url.split(sep="/")[-1] @@ -728,7 +728,7 @@ def target_summary(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) except ValidatorError as exc: return exc.status_code, exc.headers, exc.response_text @@ -738,7 +738,7 @@ def target_summary(self, request: PreparedRequest) -> _ResponseType: request_body=_body_bytes(request=request), request_method=request.method or "", request_path=request.path_url, - databases=self._target_manager.databases, + databases=self._target_manager.cloud_databases, ) target_id = request.path_url.split(sep="/")[-1] target = database.get_target(target_id=target_id) diff --git a/src/mock_vws/target_manager.py b/src/mock_vws/target_manager.py index 620564ba6..c304cd40a 100644 --- a/src/mock_vws/target_manager.py +++ b/src/mock_vws/target_manager.py @@ -47,7 +47,7 @@ def add_database(self, database: CloudDatabase) -> None: "All {key_name}s must be unique. " 'There is already a database with the {key_name} "{value}".' ) - for existing_db in self.databases: + for existing_db in self.cloud_databases: for existing, new, key_name in ( ( existing_db.server_access_key, @@ -82,6 +82,6 @@ def add_database(self, database: CloudDatabase) -> None: self._databases = {*self._databases, database} @property - def databases(self) -> set[CloudDatabase]: + def cloud_databases(self) -> set[CloudDatabase]: """All cloud databases.""" return set(self._databases)