Skip to content

Commit

Permalink
Test a change to see if it helps with cross test pollution and related
Browse files Browse the repository at this point in the history
CI test run failures.
  • Loading branch information
Kami committed Apr 16, 2024
1 parent def28c9 commit b83ffc8
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 31 deletions.
14 changes: 9 additions & 5 deletions libcloud/test/common/test_digitalocean_v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,20 @@
from libcloud.test.secrets import DIGITALOCEAN_v2_PARAMS
from libcloud.test.file_fixtures import FileFixtures
from libcloud.common.digitalocean import DigitalOceanBaseDriver
from libcloud.dns.drivers.digitalocean import DigitalOceanDNSDriver


class DigitalOceanTests(LibcloudTestCase):
def setUp(self):
DigitalOceanBaseDriver.connectionCls.conn_class = DigitalOceanMockHttp
DigitalOceanMockHttp.type = None
DigitalOceanBaseDriver.connectionCls.conn_class = DigitalOceanCommonMockHttp
DigitalOceanCommonMockHttp.type = None
self.driver = DigitalOceanBaseDriver(*DIGITALOCEAN_v2_PARAMS)

def tearDown(self):
DigitalOceanCommonMockHttp.type = None

def test_authentication(self):
DigitalOceanMockHttp.type = "UNAUTHORIZED"
DigitalOceanCommonMockHttp.type = "UNAUTHORIZED"
self.assertRaises(InvalidCredsError, self.driver.ex_account_info)

def test_ex_account_info(self):
Expand All @@ -51,13 +55,13 @@ def test_ex_get_event(self):
self.assertEqual(action["type"], "power_on")

def test__paginated_request(self):
DigitalOceanMockHttp.type = "page_1"
DigitalOceanCommonMockHttp.type = "page_1"
actions = self.driver._paginated_request("/v2/actions", "actions")
self.assertEqual(actions[0]["id"], 12345671)
self.assertEqual(actions[0]["status"], "completed")


class DigitalOceanMockHttp(MockHttp):
class DigitalOceanCommonMockHttp(MockHttp):
fixtures = FileFixtures("common", "digitalocean")

response = {
Expand Down
55 changes: 29 additions & 26 deletions libcloud/test/compute/test_digitalocean_v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,13 @@
# class DigitalOceanTests(unittest.TestCase, TestCaseMixin):
class DigitalOcean_v2_Tests(LibcloudTestCase):
def setUp(self):
DigitalOceanNodeDriver.connectionCls.conn_class = DigitalOceanMockHttp
DigitalOceanMockHttp.type = None
DigitalOceanNodeDriver.connectionCls.conn_class = DigitalOceanComputeMockHttp
DigitalOceanComputeMockHttp.type = None
self.driver = DigitalOceanNodeDriver(*DIGITALOCEAN_v2_PARAMS)

def tearDown(self):
DigitalOceanComputeMockHttp.type = None

def test_v1_Error(self):
self.assertRaises(
DigitalOcean_v1_Error,
Expand All @@ -56,7 +59,7 @@ def test_v2_uses_v1_key(self):
)

def test_authentication(self):
DigitalOceanMockHttp.type = "UNAUTHORIZED"
DigitalOceanComputeMockHttp.type = "UNAUTHORIZED"
self.assertRaises(InvalidCredsError, self.driver.list_nodes)

def test_list_images_success(self):
Expand Down Expand Up @@ -128,7 +131,7 @@ def test_create_node_invalid_size(self):
size = self.driver.list_sizes()[0]
location = self.driver.list_locations()[0]

DigitalOceanMockHttp.type = "INVALID_IMAGE"
DigitalOceanComputeMockHttp.type = "INVALID_IMAGE"
expected_msg = (
r"You specified an invalid image for Droplet creation."
+ r" \(code: (404|HTTPStatus.NOT_FOUND)\)"
Expand All @@ -146,13 +149,13 @@ def test_create_node_invalid_size(self):

def test_reboot_node_success(self):
node = self.driver.list_nodes()[0]
DigitalOceanMockHttp.type = "REBOOT"
DigitalOceanComputeMockHttp.type = "REBOOT"
result = self.driver.reboot_node(node)
self.assertTrue(result)

def test_create_image_success(self):
node = self.driver.list_nodes()[0]
DigitalOceanMockHttp.type = "SNAPSHOT"
DigitalOceanComputeMockHttp.type = "SNAPSHOT"
result = self.driver.create_image(node, "My snapshot")
self.assertTrue(result)

Expand All @@ -164,62 +167,62 @@ def test_get_image_success(self):

def test_delete_image_success(self):
image = self.driver.get_image(12345)
DigitalOceanMockHttp.type = "DESTROY"
DigitalOceanComputeMockHttp.type = "DESTROY"
result = self.driver.delete_image(image)
self.assertTrue(result)

def test_ex_power_on_node_success(self):
node = self.driver.list_nodes()[0]
DigitalOceanMockHttp.type = "POWERON"
DigitalOceanComputeMockHttp.type = "POWERON"
result = self.driver.ex_power_on_node(node)
self.assertTrue(result)

def test_ex_shutdown_node_success(self):
node = self.driver.list_nodes()[0]
DigitalOceanMockHttp.type = "SHUTDOWN"
DigitalOceanComputeMockHttp.type = "SHUTDOWN"
result = self.driver.ex_shutdown_node(node)
self.assertTrue(result)

def test_ex_hard_reboot_success(self):
node = self.driver.list_nodes()[0]
DigitalOceanMockHttp.type = "POWERCYCLE"
DigitalOceanComputeMockHttp.type = "POWERCYCLE"
result = self.driver.ex_hard_reboot(node)
self.assertTrue(result)

def test_ex_rebuild_node_success(self):
node = self.driver.list_nodes()[0]
DigitalOceanMockHttp.type = "REBUILD"
DigitalOceanComputeMockHttp.type = "REBUILD"
result = self.driver.ex_rebuild_node(node)
self.assertTrue(result)

def test_ex_resize_node_success(self):
node = self.driver.list_nodes()[0]
size = self.driver.list_sizes()[0]
DigitalOceanMockHttp.type = "RESIZE"
DigitalOceanComputeMockHttp.type = "RESIZE"
result = self.driver.ex_resize_node(node, size)
self.assertTrue(result)

def test_destroy_node_success(self):
node = self.driver.list_nodes()[0]
DigitalOceanMockHttp.type = "DESTROY"
DigitalOceanComputeMockHttp.type = "DESTROY"
result = self.driver.destroy_node(node)
self.assertTrue(result)

def test_ex_change_kernel_success(self):
node = self.driver.list_nodes()[0]
DigitalOceanMockHttp.type = "KERNELCHANGE"
DigitalOceanComputeMockHttp.type = "KERNELCHANGE"
result = self.driver.ex_change_kernel(node, 7515)
self.assertTrue(result)

def test_ex_enable_ipv6_success(self):
node = self.driver.list_nodes()[0]
DigitalOceanMockHttp.type = "ENABLEIPV6"
DigitalOceanComputeMockHttp.type = "ENABLEIPV6"
result = self.driver.ex_enable_ipv6(node)
self.assertTrue(result)

def test_ex_rename_node_success(self):
node = self.driver.list_nodes()[0]
DigitalOceanMockHttp.type = "RENAME"
DigitalOceanComputeMockHttp.type = "RENAME"
result = self.driver.ex_rename_node(node, "fedora helios")
self.assertTrue(result)

Expand All @@ -231,7 +234,7 @@ def test_list_key_pairs(self):
self.assertEqual(keys[0].public_key, "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDGk5 example")

def test_create_key_pair(self):
DigitalOceanMockHttp.type = "CREATE"
DigitalOceanComputeMockHttp.type = "CREATE"
key = self.driver.create_key_pair(
name="test1", public_key="ssh-rsa AAAAB3NzaC1yc2EAAAADAQsxRiUKn example"
)
Expand All @@ -250,7 +253,7 @@ def test__paginated_request_single_page(self):
self.assertEqual(nodes[0]["size_slug"], "s-1vcpu-1gb")

def test__paginated_request_two_pages(self):
DigitalOceanMockHttp.type = "PAGE_ONE"
DigitalOceanComputeMockHttp.type = "PAGE_ONE"
nodes = self.driver._paginated_request("/v2/droplets", "droplets")
self.assertEqual(len(nodes), 2)

Expand All @@ -264,13 +267,13 @@ def test_list_volumes(self):
self.assertEqual(volume.driver, self.driver)

def test_list_volumes_empty(self):
DigitalOceanMockHttp.type = "EMPTY"
DigitalOceanComputeMockHttp.type = "EMPTY"
volumes = self.driver.list_volumes()
self.assertEqual(len(volumes), 0)

def test_create_volume(self):
nyc1 = [r for r in self.driver.list_locations() if r.id == "nyc1"][0]
DigitalOceanMockHttp.type = "CREATE"
DigitalOceanComputeMockHttp.type = "CREATE"
volume = self.driver.create_volume(4, "example", nyc1)
self.assertEqual(volume.id, "62766883-2c28-11e6-b8e6-000f53306ae1")
self.assertEqual(volume.name, "example")
Expand All @@ -280,19 +283,19 @@ def test_create_volume(self):
def test_attach_volume(self):
node = self.driver.list_nodes()[0]
volume = self.driver.list_volumes()[0]
DigitalOceanMockHttp.type = "ATTACH"
DigitalOceanComputeMockHttp.type = "ATTACH"
resp = self.driver.attach_volume(node, volume)
self.assertTrue(resp)

def test_detach_volume(self):
volume = self.driver.list_volumes()[0]
DigitalOceanMockHttp.type = "DETACH"
DigitalOceanComputeMockHttp.type = "DETACH"
resp = self.driver.detach_volume(volume)
self.assertTrue(resp)

def test_destroy_volume(self):
volume = self.driver.list_volumes()[0]
DigitalOceanMockHttp.type = "DESTROY"
DigitalOceanComputeMockHttp.type = "DESTROY"
resp = self.driver.destroy_volume(volume)
self.assertTrue(resp)

Expand All @@ -307,7 +310,7 @@ def test_list_volume_snapshots(self):

def test_create_volume_snapshot(self):
volume = self.driver.list_volumes()[0]
DigitalOceanMockHttp.type = "CREATE"
DigitalOceanComputeMockHttp.type = "CREATE"
snapshot = self.driver.create_volume_snapshot(volume, "test-snapshot")
self.assertEqual(snapshot.id, "c0def940-9324-11e6-9a56-000f533176b1")
self.assertEqual(snapshot.name, "test-snapshot")
Expand All @@ -316,7 +319,7 @@ def test_create_volume_snapshot(self):
def test_delete_volume_snapshot(self):
volume = self.driver.list_volumes()[0]
snapshot = self.driver.list_volume_snapshots(volume)[0]
DigitalOceanMockHttp.type = "DELETE"
DigitalOceanComputeMockHttp.type = "DELETE"
result = self.driver.delete_volume_snapshot(snapshot)
self.assertTrue(result)

Expand Down Expand Up @@ -396,7 +399,7 @@ def test_ex_detach_floating_ip_from_node(self):
self.assertTrue(ret)


class DigitalOceanMockHttp(MockHttp):
class DigitalOceanComputeMockHttp(MockHttp):
fixtures = ComputeFileFixtures("digitalocean_v2")

def _v2_regions(self, method, url, body, headers):
Expand Down
3 changes: 3 additions & 0 deletions libcloud/test/dns/test_digitalocean.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ def setUp(self):
DigitalOceanDNSMockHttp.type = None
self.driver = DigitalOceanDNSDriver(*DIGITALOCEAN_v2_PARAMS)

def tearDown(self):
DigitalOceanDNSMockHttp.type = None

def test_list_zones(self):
zones = self.driver.list_zones()
self.assertTrue(len(zones) >= 1)
Expand Down

0 comments on commit b83ffc8

Please sign in to comment.