diff --git a/CHANGELOG.md b/CHANGELOG.md index 250f0e0..8d5dcc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Adds Sustainable Development Goals (SDGs) field to projects -- Adds the ability to filter Projects on country, type +- Adds the ability to filter Projects on country, type, minimum_available_mass ### Changed diff --git a/README.md b/README.md index 19e6f5e..51d1abd 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,7 @@ Projects are the ways Patch takes CO2 out of the air. They can represent refores When fetching projects, you can supply filters to the query to narrow your result. Currently supported filters are: - `country` - `type` +- `minimum_available_mass` [API Reference](https://docs.usepatch.com/#/?id=projects) @@ -178,6 +179,9 @@ patch.projects.retrieve_projects(type="biomass") # Retrieve a list of projects from Canada patch.projects.retrieve_projects(country="CA") + +# Retrieve a list of projects with at least 100 grams of available offsets +patch.projects.retrieve_projects(minimum_available_mass=100) ``` ### Preferences diff --git a/patch_api/api/projects_api.py b/patch_api/api/projects_api.py index 384f7a7..dc2cb34 100644 --- a/patch_api/api/projects_api.py +++ b/patch_api/api/projects_api.py @@ -185,6 +185,7 @@ def retrieve_projects(self, **kwargs): # noqa: E501 :param int page: :param str country: :param str type: + :param int minimum_available_mass: :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. @@ -212,6 +213,7 @@ def retrieve_projects_with_http_info(self, **kwargs): # noqa: E501 :param int page: :param str country: :param str type: + :param int minimum_available_mass: :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will @@ -228,7 +230,7 @@ def retrieve_projects_with_http_info(self, **kwargs): # noqa: E501 local_var_params = locals() - all_params = ["page", "country", "type"] # noqa: E501 + all_params = ["page", "country", "type", "minimum_available_mass"] # noqa: E501 all_params.append("async_req") all_params.append("_return_http_data_only") all_params.append("_preload_content") @@ -267,6 +269,10 @@ def retrieve_projects_with_http_info(self, **kwargs): # noqa: E501 query_params.append(("country", local_var_params["country"])) # noqa: E501 if "type" in local_var_params: query_params.append(("type", local_var_params["type"])) # noqa: E501 + if "minimum_available_mass" in local_var_params: + query_params.append( + ("minimum_available_mass", local_var_params["minimum_available_mass"]) + ) # noqa: E501 header_params = {} diff --git a/test/test_orders_api.py b/test/test_orders_api.py index 976a337..0b66cb9 100644 --- a/test/test_orders_api.py +++ b/test/test_orders_api.py @@ -59,7 +59,6 @@ def test_retrieve_orders(self): self.assertTrue(retrieved_order.id) self.assertEqual(retrieved_order.production, False) self.assertEqual(retrieved_order.state, "placed") - self.assertEqual(retrieved_order.allocation_state, "allocated") self.assertEqual(retrieved_order.metadata, {}) self.assertTrue(isinstance(retrieved_order.allocations, list)) diff --git a/test/test_projects_api.py b/test/test_projects_api.py index 1235487..ba97955 100644 --- a/test/test_projects_api.py +++ b/test/test_projects_api.py @@ -86,6 +86,20 @@ def test_retrieve_american_projects(self): for project in projects: self.assertEqual(project.country, project_country) + def test_retrieve_projects_with_more_than_100_grams_of_inventory(self): + """Test case for retrieve_projects with a country filter + + Retrieves a list of projects # noqa: E501 + """ + minimum_available_mass = 100 + projects = self.api.retrieve_projects( + minimum_available_mass=minimum_available_mass + ).data + self.assertTrue(isinstance(projects, list)) + + for project in projects: + self.assertTrue(project.remaining_mass_g >= minimum_available_mass) + if __name__ == "__main__": unittest.main()