2929
3030PATH = "instance/service-accounts/default"
3131
32+ DATA_DIR = os .path .join (os .path .dirname (__file__ ), "data" )
33+ SMBIOS_PRODUCT_NAME_FILE = os .path .join (DATA_DIR , "smbios_product_name" )
34+ SMBIOS_PRODUCT_NAME_NONEXISTENT_FILE = os .path .join (
35+ DATA_DIR , "smbios_product_name_nonexistent"
36+ )
37+ SMBIOS_PRODUCT_NAME_NON_GOOGLE = os .path .join (
38+ DATA_DIR , "smbios_product_name_non_google"
39+ )
40+
3241
3342def make_request (data , status = http_client .OK , headers = None , retry = False ):
3443 response = mock .create_autospec (transport .Response , instance = True )
@@ -45,6 +54,39 @@ def make_request(data, status=http_client.OK, headers=None, retry=False):
4554 return request
4655
4756
57+ def test_detect_gce_residency_linux_success ():
58+ _metadata ._GCE_PRODUCT_NAME_FILE = SMBIOS_PRODUCT_NAME_FILE
59+ assert _metadata .detect_gce_residency_linux ()
60+
61+
62+ def test_detect_gce_residency_linux_non_google ():
63+ _metadata ._GCE_PRODUCT_NAME_FILE = SMBIOS_PRODUCT_NAME_NON_GOOGLE
64+ assert not _metadata .detect_gce_residency_linux ()
65+
66+
67+ def test_detect_gce_residency_linux_nonexistent ():
68+ _metadata ._GCE_PRODUCT_NAME_FILE = SMBIOS_PRODUCT_NAME_NONEXISTENT_FILE
69+ assert not _metadata .detect_gce_residency_linux ()
70+
71+
72+ def test_is_on_gce_ping_success ():
73+ request = make_request ("" , headers = _metadata ._METADATA_HEADERS )
74+ assert _metadata .is_on_gce (request )
75+
76+
77+ @mock .patch ("os.name" , new = "nt" )
78+ def test_is_on_gce_windows_success ():
79+ request = make_request ("" , headers = {_metadata ._METADATA_FLAVOR_HEADER : "meep" })
80+ assert not _metadata .is_on_gce (request )
81+
82+
83+ @mock .patch ("os.name" , new = "posix" )
84+ def test_is_on_gce_linux_success ():
85+ request = make_request ("" , headers = {_metadata ._METADATA_FLAVOR_HEADER : "meep" })
86+ _metadata ._GCE_PRODUCT_NAME_FILE = SMBIOS_PRODUCT_NAME_FILE
87+ assert _metadata .is_on_gce (request )
88+
89+
4890def test_ping_success ():
4991 request = make_request ("" , headers = _metadata ._METADATA_HEADERS )
5092
0 commit comments