|
| 1 | +import os |
| 2 | +import pytest |
| 3 | +from datacrunch.datacrunch import DataCrunchClient |
| 4 | +from datacrunch.constants import Locations |
| 5 | + |
| 6 | +IN_GITHUB_ACTIONS = os.getenv("GITHUB_ACTIONS") == "true" |
| 7 | + |
| 8 | +location_codes = [Locations.FIN_01, Locations.ICE_01] |
| 9 | + |
| 10 | + |
| 11 | +@pytest.mark.skipif(IN_GITHUB_ACTIONS, reason="Test doesn't work in Github Actions.") |
| 12 | +@pytest.mark.withoutresponses |
| 13 | +class TestLocations(): |
| 14 | + |
| 15 | + def test_specific_instance_availability_in_specific_location(self, datacrunch_client: DataCrunchClient): |
| 16 | + # call the instance availability endpoint, for a specific location |
| 17 | + availability = datacrunch_client.instances.is_available( |
| 18 | + 'CPU.4V', location_code=Locations.FIN_01) |
| 19 | + |
| 20 | + assert availability is not None |
| 21 | + assert isinstance(availability, bool) |
| 22 | + |
| 23 | + def test_all_availabilies_in_specific_location(self, datacrunch_client: DataCrunchClient): |
| 24 | + |
| 25 | + # call the instance availability endpoint, for a specific location |
| 26 | + availabilities = datacrunch_client.instances.get_availabilities( |
| 27 | + location_code=Locations.FIN_01) |
| 28 | + |
| 29 | + assert availabilities is not None |
| 30 | + assert isinstance(availabilities, list) |
| 31 | + assert len(availabilities) == 1 |
| 32 | + assert availabilities[0]['location_code'] in location_codes |
| 33 | + assert isinstance(availabilities[0]['availabilities'], list) |
| 34 | + assert len(availabilities[0]['availabilities']) > 0 |
| 35 | + |
| 36 | + def test_all_availabilites(self, datacrunch_client: DataCrunchClient): |
| 37 | + # call the instance availability endpoint, for all locations |
| 38 | + all_availabilities = datacrunch_client.instances.get_availabilities() |
| 39 | + |
| 40 | + assert all_availabilities is not None |
| 41 | + assert isinstance(all_availabilities, list) |
| 42 | + assert len(all_availabilities) > 1 |
| 43 | + assert all_availabilities[0]['location_code'] in location_codes |
| 44 | + assert all_availabilities[1]['location_code'] in location_codes |
| 45 | + assert isinstance(all_availabilities[0]['availabilities'], list) |
| 46 | + assert len(all_availabilities[0]['availabilities']) > 0 |
| 47 | + |
| 48 | + def test_get_all_locations(self, datacrunch_client: DataCrunchClient): |
| 49 | + # call the locations endpoint |
| 50 | + locations = datacrunch_client.locations.get() |
| 51 | + |
| 52 | + assert locations is not None |
| 53 | + assert isinstance(locations, list) |
| 54 | + |
| 55 | + assert locations[0]['code'] in location_codes |
| 56 | + assert locations[1]['code'] in location_codes |
| 57 | + assert locations[0]['code'] != locations[1]['code'] |
| 58 | + |
| 59 | + assert locations[0]['name'] is not None |
| 60 | + assert locations[1]['name'] is not None |
| 61 | + assert locations[0]['name'] != locations[1]['name'] |
| 62 | + |
| 63 | + assert locations[0]['country_code'] is not None |
| 64 | + assert locations[1]['country_code'] is not None |
| 65 | + assert locations[0]['country_code'] != locations[1]['country_code'] |
0 commit comments