def test_detect_cloud_microsoft_rc_error(mock_metadata, mock_get_stdout, mock_is_program): mock_is_program.return_value = True mock_get_stdout.side_effect = [(0, "other"), (1, "other"), (0, "other")] mock_metadata.return_value = None assert utils.detect_cloud() is None mock_is_program.assert_called_once_with("dmidecode") mock_get_stdout.assert_has_calls([ mock.call("dmidecode -s system-version"), mock.call("dmidecode -s system-manufacturer") ]) assert mock_metadata.call_count == 0 assert utils._ip_for_cloud is None
def test_detect_cloud_microsoft(mock_metadata, mock_get_stdout, mock_is_program): mock_is_program.return_value = True mock_get_stdout.side_effect = [(0, "other"), (0, "microsoft corporation")] mock_metadata.return_value = "10.10.10.10" assert utils.detect_cloud() == "microsoft-azure" mock_is_program.assert_called_once_with("dmidecode") mock_get_stdout.assert_has_calls([ mock.call("dmidecode -s system-version"), mock.call("dmidecode -s system-manufacturer") ]) mock_metadata.assert_called_once_with( "http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/privateIpAddress?api-version=2017-08-01&format=text", headers={"Metadata": "true"}) assert utils._ip_for_cloud == "10.10.10.10"
def test_detect_cloud_gcp(mock_metadata, mock_get_stdout, mock_is_program): mock_is_program.return_value = True mock_get_stdout.side_effect = [(0, "other"), (1, "other"), (0, "Google")] mock_metadata.return_value = "10.10.10.10" assert utils.detect_cloud() == "google-cloud-platform" mock_is_program.assert_called_once_with("dmidecode") mock_get_stdout.assert_has_calls([ mock.call("dmidecode -s system-version"), mock.call("dmidecode -s system-manufacturer"), mock.call("dmidecode -s bios-vendor") ]) mock_metadata.assert_called_once_with( "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip", headers={"Metadata-Flavor": "Google"}) assert utils._ip_for_cloud == "10.10.10.10"
def test_detect_cloud_aws_error(mock_get_stdout, mock_is_program): mock_is_program.return_value = True mock_get_stdout.return_value = (1, "other") assert utils.detect_cloud() is None mock_is_program.assert_called_once_with("dmidecode") mock_get_stdout.assert_called_once_with("dmidecode -s system-version")
def test_detect_cloud_aws(mock_get_stdout, mock_is_program): mock_is_program.return_value = True mock_get_stdout.return_value = (0, "4.2.amazon") assert utils.detect_cloud() == "amazon-web-services" mock_is_program.assert_called_once_with("dmidecode") mock_get_stdout.assert_called_once_with("dmidecode -s system-version")
def test_detect_cloud_not_dmidecode(mock_is_program): mock_is_program.return_value = False assert utils.detect_cloud() is None mock_is_program.assert_called_once_with("dmidecode")