Skip to content

Commit

Permalink
Merge pull request #33 from FiniteStateInc/cp/asoc-2857-fix-non-exist…
Browse files Browse the repository at this point in the history
…s-asset-id

ASOC-2857: Fix issue when asset ID does not exist
  • Loading branch information
cpfarherFinitestate authored Aug 27, 2024
2 parents 5b81405 + 953f49b commit e79dda0
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
2 changes: 2 additions & 0 deletions finite_state_sdk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,8 @@ def create_new_asset_version_artifact_and_test_for_upload(
raise ValueError("Version is required")

assets = get_all_assets(token, organization_context, asset_id=asset_id)
if not assets:
raise ValueError("No assets found with the provided asset ID")
asset = assets[0]

# get the asset name
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import pytest
from unittest.mock import patch
from finite_state_sdk import create_new_asset_version_artifact_and_test_for_upload, UploadMethod

Expand Down Expand Up @@ -111,3 +112,39 @@ def test_create_new_asset_version_artifact_and_test_for_upload_third_party_scann
mock_create_test_third_party_scanner.assert_called_once()

assert response == self.mock_response_create_test['createTest']['id']

@patch("finite_state_sdk.create_asset_version_on_asset")
@patch("finite_state_sdk.create_artifact")
@patch("finite_state_sdk.create_test_as_binary_analysis")
@patch("finite_state_sdk.create_test_as_third_party_scanner")
@patch("finite_state_sdk.send_graphql_query")
@patch("finite_state_sdk.get_all_assets")
def test_create_new_asset_version_artifact_and_test_for_upload_non_asset_exists(self, mock_get_all_assets, mock_send_query, mock_create_test_third_party_scanner, mock_create_test_binary_analysis, mock_create_artifact, mock_create_asset_version_on_asset):
mock_get_all_assets.return_value = []
mock_send_query.side_effect = [self.mock_response_create_asset_version, self.mock_response_create_artifact, self.mock_response_create_test]
mock_create_asset_version_on_asset.return_value = self.mock_response_create_asset_version_on_asset
mock_create_artifact.return_value = self.mock_response_create_artifact
mock_create_test_binary_analysis.return_value = self.mock_response_create_test
mock_create_test_third_party_scanner.return_value = self.mock_response_create_test

with pytest.raises(ValueError) as excinfo:
create_new_asset_version_artifact_and_test_for_upload(
token=self.auth_token,
organization_context=self.organization_context,
business_unit_id=self.business_unit_id,
created_by_user_id=self.created_by_user_id,
asset_id=self.asset_id,
version=self.version,
product_id=self.product_id,
test_type="finite_state_binary_analysis",
artifact_description=self.artifact_description,
upload_method=self.upload_method
)

mock_get_all_assets.assert_called_once()
mock_create_asset_version_on_asset.assert_called_once()
mock_create_artifact.assert_called_once()
mock_create_test_binary_analysis.assert_called_once()
mock_create_test_third_party_scanner.assert_not_called()

assert str(excinfo.value) == "No assets found with the provided asset ID"

0 comments on commit e79dda0

Please sign in to comment.