def test_artifacts_fails_invalid_size(self, api_client_int):
        artifact_name = str(uuid4())
        description = "description for foo " + artifact_name
        device_type = "project-" + str(uuid4())
        data = b"foo_bar"

        tenant_id = str(ObjectId())

        # generate artifact
        with artifact_from_data(
            name=artifact_name, data=data, devicetype=device_type
        ) as art:
            artifacts_client = SimpleArtifactsClient()

            artifacts_client.log.info("uploading artifact")
            with pytest.raises(ArtifactsClientError):
                api_client_int.add_artifact(tenant_id, description, -1, art)
示例#2
0
    def test_artifacts_valid(self, api_client_int, mongo):
        artifact_name = str(uuid4())
        description = "description for foo " + artifact_name
        device_type = "project-" + str(uuid4())
        data = b"foo_bar"

        tenant_id = str(ObjectId())
        _, r = api_client_int.create_tenant(tenant_id)
        assert r.status_code == 201

        # generate artifact
        with artifact_from_data(name=artifact_name,
                                data=data,
                                devicetype=device_type) as art:
            artifacts_client = SimpleArtifactsClient()

            artifacts_client.log.info("uploading artifact")
            artid = api_client_int.add_artifact(tenant_id, description,
                                                art.size, art)
            assert artid is not None

            # verify the artifact has been stored correctly in mongodb
            artifact = mongo["deployment_service-{}".format(
                tenant_id)].images.find_one({"_id": artid})
            assert artifact is not None
            #
            assert artifact["_id"] == artid
            assert artifact["meta_artifact"]["name"] == artifact_name
            assert artifact["meta"]["description"] == description
            assert artifact["size"] == int(art.size)
            assert (device_type
                    in artifact["meta_artifact"]["device_types_compatible"])
            assert len(artifact["meta_artifact"]["updates"]) == 1
            update = artifact["meta_artifact"]["updates"][0]
            assert len(update["files"]) == 1
            uf = update["files"][0]
            assert uf["size"] == len(data)
            assert uf["checksum"]