diff --git a/gapic/schema/wrappers.py b/gapic/schema/wrappers.py index b9a3876133..aecda19f44 100644 --- a/gapic/schema/wrappers.py +++ b/gapic/schema/wrappers.py @@ -99,7 +99,9 @@ def mock_value_original_type(self) -> Union[bool, str, bytes, int, float, List[A # If this is a repeated field, then the mock answer should # be a list. if self.repeated: - answer = [answer] + first_item = self.primitive_mock(suffix=1) or None + second_item = self.primitive_mock(suffix=2) or None + answer = [first_item, second_item] return answer @@ -160,9 +162,12 @@ def inner_mock(self, stack, visited_fields) -> str: # Done; return the mock value. return answer - def primitive_mock(self) -> Union[bool, str, bytes, int, float, List[Any], None]: + def primitive_mock(self, suffix: int = 0) -> Union[bool, str, bytes, int, float, List[Any], None]: """Generate a valid mock for a primitive type. This function returns the original (Python) type. + + If a suffix is provided, generate a slightly different mock + using the provided integer. """ answer: Union[bool, str, bytes, int, float, List[Any], None] = None @@ -174,13 +179,14 @@ def primitive_mock(self) -> Union[bool, str, bytes, int, float, List[Any], None] if self.type.python_type == bool: answer = True elif self.type.python_type == str: - answer = f"{self.name}_value" + answer = f"{self.name}_value_{suffix}" if suffix else f"{self.name}_value" elif self.type.python_type == bytes: - answer = bytes(f"{self.name}_blob", encoding="utf-8") + answer_str = f"{self.name}_blob_{suffix}" if suffix else f"{self.name}_blob" + answer = bytes(answer_str, encoding="utf-8") elif self.type.python_type == int: - answer = sum([ord(i) for i in self.name]) + answer = sum([ord(i) for i in self.name]) + suffix elif self.type.python_type == float: - name_sum = sum([ord(i) for i in self.name]) + name_sum = sum([ord(i) for i in self.name]) + suffix answer = name_sum * pow(10, -1 * len(str(name_sum))) else: # Impossible; skip coverage checks. raise TypeError('Unrecognized PrimitiveType. This should ' diff --git a/tests/integration/goldens/credentials/samples/generated_samples/iamcredentials_generated_credentials_v1_iam_credentials_generate_access_token_async.py b/tests/integration/goldens/credentials/samples/generated_samples/iamcredentials_generated_credentials_v1_iam_credentials_generate_access_token_async.py index 1e6b476581..067ec4e09d 100644 --- a/tests/integration/goldens/credentials/samples/generated_samples/iamcredentials_generated_credentials_v1_iam_credentials_generate_access_token_async.py +++ b/tests/integration/goldens/credentials/samples/generated_samples/iamcredentials_generated_credentials_v1_iam_credentials_generate_access_token_async.py @@ -36,7 +36,7 @@ async def sample_generate_access_token(): # Initialize request argument(s) request = credentials_v1.GenerateAccessTokenRequest( name="projects/{project}/serviceAccounts/{service_account}", - scope=['scope_value'], + scope=['scope_value_1', 'scope_value_2'], ) # Make the request diff --git a/tests/integration/goldens/credentials/samples/generated_samples/iamcredentials_generated_credentials_v1_iam_credentials_generate_access_token_sync.py b/tests/integration/goldens/credentials/samples/generated_samples/iamcredentials_generated_credentials_v1_iam_credentials_generate_access_token_sync.py index 3c4f4909dc..e2ec5d222d 100644 --- a/tests/integration/goldens/credentials/samples/generated_samples/iamcredentials_generated_credentials_v1_iam_credentials_generate_access_token_sync.py +++ b/tests/integration/goldens/credentials/samples/generated_samples/iamcredentials_generated_credentials_v1_iam_credentials_generate_access_token_sync.py @@ -36,7 +36,7 @@ def sample_generate_access_token(): # Initialize request argument(s) request = credentials_v1.GenerateAccessTokenRequest( name="projects/{project}/serviceAccounts/{service_account}", - scope=['scope_value'], + scope=['scope_value_1', 'scope_value_2'], ) # Make the request diff --git a/tests/integration/goldens/logging/samples/generated_samples/logging_generated_logging_v2_logging_service_v2_tail_log_entries_async.py b/tests/integration/goldens/logging/samples/generated_samples/logging_generated_logging_v2_logging_service_v2_tail_log_entries_async.py index 69e7169598..38efe9e40d 100644 --- a/tests/integration/goldens/logging/samples/generated_samples/logging_generated_logging_v2_logging_service_v2_tail_log_entries_async.py +++ b/tests/integration/goldens/logging/samples/generated_samples/logging_generated_logging_v2_logging_service_v2_tail_log_entries_async.py @@ -35,11 +35,11 @@ async def sample_tail_log_entries(): # Initialize request argument(s) request = logging_v2.TailLogEntriesRequest( - resource_names=['resource_names_value'], + resource_names=['resource_names_value_1', 'resource_names_value_2'], ) # Make the request - stream = await client.tail_log_entries([resource_names=['resource_names_value']]) + stream = await client.tail_log_entries([resource_names=['resource_names_value_1', 'resource_names_value_2']]) async for response in stream: print(response) diff --git a/tests/integration/goldens/logging/samples/generated_samples/logging_generated_logging_v2_logging_service_v2_tail_log_entries_sync.py b/tests/integration/goldens/logging/samples/generated_samples/logging_generated_logging_v2_logging_service_v2_tail_log_entries_sync.py index 6296d6783e..a533ee9ad6 100644 --- a/tests/integration/goldens/logging/samples/generated_samples/logging_generated_logging_v2_logging_service_v2_tail_log_entries_sync.py +++ b/tests/integration/goldens/logging/samples/generated_samples/logging_generated_logging_v2_logging_service_v2_tail_log_entries_sync.py @@ -35,11 +35,11 @@ def sample_tail_log_entries(): # Initialize request argument(s) request = logging_v2.TailLogEntriesRequest( - resource_names=['resource_names_value'], + resource_names=['resource_names_value_1', 'resource_names_value_2'], ) # Make the request - stream = client.tail_log_entries([resource_names=['resource_names_value']]) + stream = client.tail_log_entries([resource_names=['resource_names_value_1', 'resource_names_value_2']]) for response in stream: print(response) diff --git a/tests/unit/schema/wrappers/test_field.py b/tests/unit/schema/wrappers/test_field.py index 2fa2c09783..7c9bfacbd1 100644 --- a/tests/unit/schema/wrappers/test_field.py +++ b/tests/unit/schema/wrappers/test_field.py @@ -221,7 +221,8 @@ def test_mock_value_repeated(): def test_mock_value_original_type_repeated(): field = make_field(name='foo_bar', type='TYPE_STRING', label=3) - assert field.mock_value_original_type == ["foo_bar_value"] + assert field.mock_value_original_type == [ + "foo_bar_value_1", "foo_bar_value_2"] def test_mock_value_map():