Skip to content

Commit 2121f06

Browse files
committed
updated tests
1 parent 40904ee commit 2121f06

File tree

1 file changed

+50
-30
lines changed

1 file changed

+50
-30
lines changed

tests/unit_tests/containers/test_containers.py

Lines changed: 50 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
Container,
1111
ContainerDeploymentStatus,
1212
ContainerRegistrySettings,
13-
ContainerRegistryType,
1413
ContainersService,
1514
Deployment,
1615
EnvVar,
@@ -31,6 +30,7 @@
3130
GCRCredentials,
3231
AWSECRCredentials,
3332
CustomRegistryCredentials,
33+
ReplicaInfo,
3434
)
3535
from datacrunch.exceptions import APIException
3636

@@ -151,7 +151,7 @@
151151

152152
# Sample replicas data
153153
REPLICAS_DATA = {
154-
"replicas": [
154+
"list": [
155155
{
156156
"id": "replica-1",
157157
"status": "running",
@@ -160,17 +160,18 @@
160160
]
161161
}
162162

163+
163164
# Sample environment variables data
164-
ENV_VARS_DATA = {
165+
ENV_VARS_DATA = [{
165166
"container_name": CONTAINER_NAME,
166167
"env": [
167168
{
168-
"name": "ENV_VAR1",
169-
"value_or_reference_to_secret": "value1",
169+
"name": ENV_VAR_NAME,
170+
"value_or_reference_to_secret": ENV_VAR_VALUE,
170171
"type": "plain"
171172
}
172173
]
173-
}
174+
}]
174175

175176

176177
class TestContainersService:
@@ -474,9 +475,9 @@ def test_get_deployment_replicas(self, containers_service, deployments_endpoint)
474475
replicas = containers_service.get_deployment_replicas(DEPLOYMENT_NAME)
475476

476477
# assert
477-
assert "replicas" in replicas
478-
assert len(replicas["replicas"]) == 1
479-
assert replicas["replicas"][0]["id"] == "replica-1"
478+
assert len(replicas) == 1
479+
assert replicas[0] == ReplicaInfo(
480+
"replica-1", "running", "2023-01-01T00:00:00+00:00")
480481
assert responses.assert_call_count(url, 1) is True
481482

482483
@responses.activate
@@ -543,9 +544,11 @@ def test_get_deployment_environment_variables(self, containers_service, deployme
543544
DEPLOYMENT_NAME)
544545

545546
# assert
546-
assert env_vars["container_name"] == CONTAINER_NAME
547-
assert len(env_vars["env"]) == 1
548-
assert env_vars["env"][0]["name"] == "ENV_VAR1"
547+
assert env_vars[CONTAINER_NAME] == [EnvVar(
548+
name=ENV_VAR_NAME,
549+
value_or_reference_to_secret=ENV_VAR_VALUE,
550+
type=EnvVarType.PLAIN
551+
)]
549552
assert responses.assert_call_count(url, 1) is True
550553

551554
@responses.activate
@@ -560,14 +563,20 @@ def test_add_deployment_environment_variables(self, containers_service, deployme
560563
)
561564

562565
# act
563-
env_vars = [{"name": ENV_VAR_NAME,
564-
"value_or_reference_to_secret": ENV_VAR_VALUE, "type": "plain"}]
566+
env_vars = [EnvVar(
567+
name=ENV_VAR_NAME,
568+
value_or_reference_to_secret=ENV_VAR_VALUE,
569+
type=EnvVarType.PLAIN
570+
)]
565571
result = containers_service.add_deployment_environment_variables(
566572
DEPLOYMENT_NAME, CONTAINER_NAME, env_vars)
567573

568574
# assert
569-
assert result["container_name"] == CONTAINER_NAME
570-
assert len(result["env"]) == 1
575+
assert result[CONTAINER_NAME] == [EnvVar(
576+
name=ENV_VAR_NAME,
577+
value_or_reference_to_secret=ENV_VAR_VALUE,
578+
type=EnvVarType.PLAIN
579+
)]
571580
assert responses.assert_call_count(url, 1) is True
572581

573582
@responses.activate
@@ -577,19 +586,25 @@ def test_update_deployment_environment_variables(self, containers_service, deplo
577586
responses.add(
578587
responses.PATCH,
579588
url,
580-
json=ENV_VARS_DATA,
589+
json=ENV_VARS_DATA[0],
581590
status=200
582591
)
583592

584593
# act
585-
env_vars = [{"name": ENV_VAR_NAME,
586-
"value_or_reference_to_secret": ENV_VAR_VALUE, "type": "plain"}]
594+
env_vars = [EnvVar(
595+
name=ENV_VAR_NAME,
596+
value_or_reference_to_secret=ENV_VAR_VALUE,
597+
type=EnvVarType.PLAIN
598+
)]
587599
result = containers_service.update_deployment_environment_variables(
588600
DEPLOYMENT_NAME, CONTAINER_NAME, env_vars)
589601

590602
# assert
591-
assert result["container_name"] == CONTAINER_NAME
592-
assert len(result["env"]) == 1
603+
assert result[CONTAINER_NAME] == [EnvVar(
604+
name=ENV_VAR_NAME,
605+
value_or_reference_to_secret=ENV_VAR_VALUE,
606+
type=EnvVarType.PLAIN
607+
)]
593608
assert responses.assert_call_count(url, 1) is True
594609

595610
@responses.activate
@@ -599,7 +614,7 @@ def test_delete_deployment_environment_variables(self, containers_service, deplo
599614
responses.add(
600615
responses.DELETE,
601616
url,
602-
json={"container_name": CONTAINER_NAME, "env": []},
617+
json=[], # remaining env variables should be empty after deletion
603618
status=200
604619
)
605620

@@ -608,8 +623,7 @@ def test_delete_deployment_environment_variables(self, containers_service, deplo
608623
DEPLOYMENT_NAME, CONTAINER_NAME, [ENV_VAR_NAME])
609624

610625
# assert
611-
assert result["container_name"] == CONTAINER_NAME
612-
assert len(result["env"]) == 0
626+
assert len(result) == 0
613627
assert responses.assert_call_count(url, 1) is True
614628

615629
@responses.activate
@@ -736,6 +750,8 @@ def test_get_registry_credentials(self, containers_service, registry_credentials
736750

737751
@responses.activate
738752
def test_add_registry_credentials(self, containers_service, registry_credentials_endpoint):
753+
USERNAME = "username"
754+
ACCESS_TOKEN = "token"
739755
# arrange - add response mock
740756
responses.add(
741757
responses.POST,
@@ -746,15 +762,16 @@ def test_add_registry_credentials(self, containers_service, registry_credentials
746762
# act
747763
creds = DockerHubCredentials(
748764
name=REGISTRY_CREDENTIAL_NAME,
749-
username="username",
750-
access_token="token"
765+
username=USERNAME,
766+
access_token=ACCESS_TOKEN
751767
)
752768
containers_service.add_registry_credentials(creds)
753769

754770
# assert
755771
assert responses.assert_call_count(
756772
registry_credentials_endpoint, 1) is True
757-
assert responses.calls[0].request.body == '{"name": "test-credential", "registry_type": "dockerhub", "username": "username", "access_token": "token"}'
773+
assert responses.calls[0].request.body.decode(
774+
'utf-8') == '{"name": "test-credential", "type": "dockerhub", "username": "username", "access_token": "token"}'
758775

759776
@responses.activate
760777
def test_add_registry_credentials_gcr(self, containers_service, registry_credentials_endpoint):
@@ -776,7 +793,8 @@ def test_add_registry_credentials_gcr(self, containers_service, registry_credent
776793
# assert
777794
assert responses.assert_call_count(
778795
registry_credentials_endpoint, 1) is True
779-
assert responses.calls[0].request.body == '{"name": "test-credential", "registry_type": "gcr", "service_account_key": {"key": "value"}}'
796+
assert responses.calls[0].request.body.decode(
797+
'utf-8') == '{"name": "test-credential", "type": "gcr", "service_account_key": "{\\"key\\": \\"value\\"}"}'
780798

781799
@responses.activate
782800
def test_add_registry_credentials_aws_ecr(self, containers_service, registry_credentials_endpoint):
@@ -800,7 +818,8 @@ def test_add_registry_credentials_aws_ecr(self, containers_service, registry_cre
800818
# assert
801819
assert responses.assert_call_count(
802820
registry_credentials_endpoint, 1) is True
803-
assert responses.calls[0].request.body == '{"name": "test-credential", "registry_type": "aws-ecr", "access_key_id": "test-key", "secret_access_key": "test-secret", "region": "us-west-2", "ecr_repo": "test.ecr.aws.com"}'
821+
assert responses.calls[0].request.body.decode(
822+
'utf-8') == '{"name": "test-credential", "type": "aws-ecr", "access_key_id": "test-key", "secret_access_key": "test-secret", "region": "us-west-2", "ecr_repo": "test.ecr.aws.com"}'
804823

805824
@responses.activate
806825
def test_add_registry_credentials_custom(self, containers_service, registry_credentials_endpoint):
@@ -822,7 +841,8 @@ def test_add_registry_credentials_custom(self, containers_service, registry_cred
822841
# assert
823842
assert responses.assert_call_count(
824843
registry_credentials_endpoint, 1) is True
825-
assert responses.calls[0].request.body == '{"name": "test-credential", "registry_type": "custom", "docker_config_json": {"auths": {"registry.example.com": {"auth": "base64-encoded"}}}}'
844+
assert responses.calls[0].request.body.decode(
845+
'utf-8') == '{"name": "test-credential", "type": "custom", "docker_config_json": "{\\"auths\\": {\\"registry.example.com\\": {\\"auth\\": \\"base64-encoded\\"}}}"}'
826846

827847
@responses.activate
828848
def test_delete_registry_credentials(self, containers_service, registry_credentials_endpoint):

0 commit comments

Comments
 (0)