forked from enviPath/enviPy
[Feature] Create API Key Authenticaton for v1 API (#327)
Add API key authentication to v1 API Also includes: - management command to create keys for users - Improvements to API tests Minor: - more robust way to start docker dev container. Reviewed-on: enviPath/enviPy#327 Co-authored-by: Tobias O <tobias.olenyi@envipath.com> Co-committed-by: Tobias O <tobias.olenyi@envipath.com>
This commit is contained in:
@ -119,7 +119,7 @@ class ScenarioCreationAPITests(TestCase):
|
||||
"scenario_type": "biodegradation",
|
||||
"additional_information": [
|
||||
{
|
||||
"type": "SomeValidType",
|
||||
"type": "invalid_type_name",
|
||||
"data": None, # This should cause a validation error
|
||||
}
|
||||
],
|
||||
@ -131,8 +131,8 @@ class ScenarioCreationAPITests(TestCase):
|
||||
content_type="application/json",
|
||||
)
|
||||
|
||||
# Should return 400 for validation errors
|
||||
self.assertIn(response.status_code, [400, 422])
|
||||
# Should return 422 for validation errors
|
||||
self.assertEqual(response.status_code, 422)
|
||||
|
||||
def test_create_scenario_success(self):
|
||||
"""Test that valid scenario creation returns 200."""
|
||||
@ -162,30 +162,6 @@ class ScenarioCreationAPITests(TestCase):
|
||||
self.assertEqual(scenario.package, self.package)
|
||||
self.assertEqual(scenario.scenario_type, "biodegradation")
|
||||
|
||||
def test_create_scenario_with_additional_information(self):
|
||||
"""Test creating scenario with valid additional information models."""
|
||||
self.client.force_login(self.user)
|
||||
|
||||
# This test will succeed if the registry has valid models
|
||||
# For now, test with empty additional_information
|
||||
payload = {
|
||||
"name": "Scenario with AI",
|
||||
"description": "Test with additional information",
|
||||
"scenario_date": "2024-01-01",
|
||||
"scenario_type": "biodegradation",
|
||||
"additional_information": [],
|
||||
}
|
||||
|
||||
response = self.client.post(
|
||||
f"/api/v1/package/{self.package.uuid}/scenario/",
|
||||
data=json.dumps(payload),
|
||||
content_type="application/json",
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json()
|
||||
self.assertEqual(data["name"], "Scenario with AI")
|
||||
|
||||
def test_create_scenario_auto_name(self):
|
||||
"""Test that empty name triggers auto-generation."""
|
||||
self.client.force_login(self.user)
|
||||
@ -265,7 +241,7 @@ class ScenarioCreationAPITests(TestCase):
|
||||
"scenario_type": "biodegradation",
|
||||
"additional_information": [
|
||||
{
|
||||
"type": "SomeType",
|
||||
"type": "invalid_type_name",
|
||||
"data": "string instead of dict", # Wrong type
|
||||
}
|
||||
],
|
||||
@ -277,8 +253,8 @@ class ScenarioCreationAPITests(TestCase):
|
||||
content_type="application/json",
|
||||
)
|
||||
|
||||
# Should return 400 for validation errors
|
||||
self.assertIn(response.status_code, [400, 422])
|
||||
# Should return 422 for validation errors
|
||||
self.assertEqual(response.status_code, 422)
|
||||
|
||||
def test_create_scenario_default_values(self):
|
||||
"""Test that default values are applied correctly."""
|
||||
|
||||
Reference in New Issue
Block a user