def test_log_artifact(gcs_mock, tmpdir): repo = GCSArtifactRepository("gs://test_bucket/some/path", gcs_mock) d = tmpdir.mkdir("data") f = d.join("test.txt") f.write("hello world!") fpath = d + "/test.txt" fpath = fpath.strpath # This will call isfile on the code path being used, # thus testing that it's being called with an actually file path def custom_isfile(*args, **kwargs): if args: return os.path.isfile(args[0]) return os.path.isfile(kwargs.get("filename")) mock_method_chain( gcs_mock, [ "Client", "bucket", "blob", "upload_from_filename", ], side_effect=custom_isfile, ) repo.log_artifact(fpath) gcs_mock.Client().bucket.assert_called_with("test_bucket") gcs_mock.Client().bucket().blob.assert_called_with( "some/path/test.txt", chunk_size=repo._GCS_UPLOAD_CHUNK_SIZE) gcs_mock.Client().bucket().blob().upload_from_filename.assert_called_with( fpath, timeout=repo._GCS_DEFAULT_TIMEOUT)
def test_log_artifact(gcs_mock, tmpdir): repo = GCSArtifactRepository("gs://test_bucket/some/path", gcs_mock) d = tmpdir.mkdir("data") f = d.join("test.txt") f.write("hello world!") fpath = d + "/test.txt" fpath = fpath.strpath # This will call isfile on the code path being used, # thus testing that it's being called with an actually file path mock_method_chain( gcs_mock, [ "Client", "bucket", "blob", "upload_from_filename", ], side_effect=os.path.isfile, ) repo.log_artifact(fpath) gcs_mock.Client().bucket.assert_called_with("test_bucket") gcs_mock.Client().bucket().blob.assert_called_with("some/path/test.txt") gcs_mock.Client().bucket().blob().upload_from_filename.assert_called_with( fpath)
def test_log_artifact(gcs_mock, tmpdir): repo = GCSArtifactRepository("gs://test_bucket/some/path", gcs_mock) d = tmpdir.mkdir("data") f = d.join("test.txt") f.write("hello world!") fpath = d + '/test.txt' fpath = fpath.strpath # This will call isfile on the code path being used, # thus testing that it's being called with an actually file path gcs_mock.Client.return_value.get_bucket.return_value.blob.return_value\ .upload_from_filename.side_effect = os.path.isfile repo.log_artifact(fpath) gcs_mock.Client().get_bucket.assert_called_with('test_bucket') gcs_mock.Client().get_bucket().blob\ .assert_called_with('some/path/test.txt') gcs_mock.Client().get_bucket().blob().upload_from_filename\ .assert_called_with(fpath)