diff --git a/arkindex/process/serializers/workers.py b/arkindex/process/serializers/workers.py index e5099467341fd0c620b03d6dd054f1546ff6210e..6c84a0492db09b08605c87cda548c796333a0568 100644 --- a/arkindex/process/serializers/workers.py +++ b/arkindex/process/serializers/workers.py @@ -735,7 +735,7 @@ class DockerWorkerVersionSerializer(serializers.ModelSerializer): # Update the worker if required if not created: description = validated_data.get("worker_description") - if worker.name != validated_data["worker_name"] or worker.type_id != worker_type.id or (description and worker.description != description): + if worker.name != validated_data["worker_name"] or worker.type_id != worker_type.id or (description is not None and worker.description != description): worker.name = validated_data["worker_name"] worker.type_id = worker_type.id worker.description = description if description else worker.description diff --git a/arkindex/process/tests/test_docker_worker_version.py b/arkindex/process/tests/test_docker_worker_version.py index 512baaa20f97e5cfbec32eb2048a9701eba1c3ec..8117a9145fc278b4b335af022c23a79b2c3d5eeb 100644 --- a/arkindex/process/tests/test_docker_worker_version.py +++ b/arkindex/process/tests/test_docker_worker_version.py @@ -20,8 +20,8 @@ class TestDockerWorkerVersion(FixtureAPITestCase): super().setUpTestData() cls.repo = Repository.objects.get(url="http://my_repo.fake/workers/worker") cls.rev = cls.repo.revisions.get() - cls.worker = Worker.objects.get(slug="reco") - cls.version = cls.worker.versions.get() + cls.worker = Worker.objects.filter(slug="reco").select_related("type").get() + cls.version = cls.worker.versions.select_related("revision").get() cls.user.user_scopes.create(scope=Scope.CreateDockerWorkerVersion) cls.worker_type = WorkerType.objects.create(slug="docker", display_name="Docker") @@ -78,8 +78,6 @@ class TestDockerWorkerVersion(FixtureAPITestCase): """ self.assertEqual(self.superuser.user_scopes.count(), 0) self.client.force_login(self.superuser) - # Keep this out of the self.assertNumQueries so as not to add irrelevant queries - type_slug = self.version.worker.type.slug response = self.client.post( reverse("api:version-from-docker"), data={ @@ -89,7 +87,7 @@ class TestDockerWorkerVersion(FixtureAPITestCase): "revision_hash": "new_revision_hash", "worker_slug": self.worker.slug, "worker_name": self.worker.name, - "worker_type": type_slug, + "worker_type": self.worker.type.slug, }, format="json", ) @@ -160,10 +158,6 @@ class TestDockerWorkerVersion(FixtureAPITestCase): """ No worker version can be created with an existing revision hash and worker slug """ - # Keep this out of the self.assertNumQueries so as not to add irrelevant queries - revision = self.version.revision - worker = self.version.worker - type_slug = worker.type.slug self.client.force_login(self.user) with self.assertNumQueries(13): response = self.client.post( @@ -172,10 +166,10 @@ class TestDockerWorkerVersion(FixtureAPITestCase): "configuration": {}, "docker_image_iid": "some_docker_image", "repository_url": self.repo.url, - "revision_hash": revision.hash, - "worker_slug": worker.slug, - "worker_name": worker.name, - "worker_type": type_slug, + "revision_hash": self.version.revision.hash, + "worker_slug": self.worker.slug, + "worker_name": self.worker.name, + "worker_type": self.worker.type.slug, }, format="json", ) @@ -189,8 +183,6 @@ class TestDockerWorkerVersion(FixtureAPITestCase): self.worker.archived = datetime.now(timezone.utc) self.worker.save() - # Keep this out of the self.assertNumQueries so as not to add irrelevant queries - type_slug = self.version.worker.type.slug with self.assertNumQueries(13): response = self.client.post( reverse("api:version-from-docker"), @@ -201,7 +193,7 @@ class TestDockerWorkerVersion(FixtureAPITestCase): "revision_hash": "new_revision_hash", "worker_slug": self.worker.slug, "worker_name": self.worker.name, - "worker_type": type_slug, + "worker_type": self.worker.type.slug, }, format="json", ) @@ -217,8 +209,6 @@ class TestDockerWorkerVersion(FixtureAPITestCase): """ self.client.force_login(self.user) - # Keep this out of the self.assertNumQueries so as not to add irrelevant queries - type_slug = self.version.worker.type.slug with self.assertNumQueries(18): response = self.client.post( reverse("api:version-from-docker"), @@ -229,7 +219,7 @@ class TestDockerWorkerVersion(FixtureAPITestCase): "revision_hash": "new_revision_hash", "worker_slug": self.worker.slug, "worker_name": self.worker.name, - "worker_type": type_slug, + "worker_type": self.worker.type.slug, }, format="json", ) @@ -271,8 +261,6 @@ class TestDockerWorkerVersion(FixtureAPITestCase): """ self.client.force_login(self.user) - # Keep this out of the self.assertNumQueries so as not to add irrelevant queries - type_slug = self.version.worker.type.slug with self.assertNumQueries(19): response = self.client.post( reverse("api:version-from-docker"), @@ -283,7 +271,7 @@ class TestDockerWorkerVersion(FixtureAPITestCase): "revision_hash": "new_revision_hash", "worker_slug": self.worker.slug, "worker_name": self.worker.name, - "worker_type": type_slug, + "worker_type": self.worker.type.slug, "revision_message": "Bruce was very clever", "revision_author": "Iwan Roberts", "revision_references": [ @@ -427,8 +415,6 @@ class TestDockerWorkerVersion(FixtureAPITestCase): ) self.client.force_login(self.user) - # Keep this out of the self.assertNumQueries so as not to add irrelevant queries - type_slug = self.version.worker.type.slug with self.assertNumQueries(19): response = self.client.post( reverse("api:version-from-docker"), @@ -439,7 +425,7 @@ class TestDockerWorkerVersion(FixtureAPITestCase): "revision_hash": "new_revision_hash", "worker_slug": self.worker.slug, "worker_name": self.worker.name, - "worker_type": type_slug, + "worker_type": self.worker.type.slug, "revision_message": "Bruce was very clever", "revision_author": "Iwan Roberts", "revision_references": [ @@ -522,10 +508,6 @@ class TestDockerWorkerVersion(FixtureAPITestCase): repository=self.version.revision.repo, ) - # Keep this out of the self.assertNumQueries so as not to add irrelevant queries - revision = self.version.revision - worker = self.version.worker - type_slug = worker.type.slug with self.assertNumQueries(13): response = self.client.post( reverse("api:version-from-docker"), @@ -533,10 +515,10 @@ class TestDockerWorkerVersion(FixtureAPITestCase): "configuration": {}, "docker_image_iid": "some_docker_image", "repository_url": self.repo.url, - "revision_hash": revision.hash, - "worker_slug": worker.slug, - "worker_name": worker.name, - "worker_type": type_slug, + "revision_hash": self.version.revision.hash, + "worker_slug": self.worker.slug, + "worker_name": self.worker.name, + "worker_type": self.worker.type.slug, "revision_references": [ {"type": "tag", "name": "9.9.9.9.9.9"}, ],