1010 Container ,
1111 ContainerDeploymentStatus ,
1212 ContainerRegistrySettings ,
13- ContainerRegistryType ,
1413 ContainersService ,
1514 Deployment ,
1615 EnvVar ,
3130 GCRCredentials ,
3231 AWSECRCredentials ,
3332 CustomRegistryCredentials ,
33+ ReplicaInfo ,
3434)
3535from datacrunch .exceptions import APIException
3636
151151
152152# Sample replicas data
153153REPLICAS_DATA = {
154- "replicas " : [
154+ "list " : [
155155 {
156156 "id" : "replica-1" ,
157157 "status" : "running" ,
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
176177class 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