|
26 | 26 | Disk, |
27 | 27 | Image, |
28 | 28 | Instance, |
| 29 | + InstanceBackups, |
| 30 | + InstanceBackupSchedule, |
29 | 31 | StackScript, |
30 | 32 | Type, |
31 | 33 | VPCSubnet, |
@@ -59,6 +61,14 @@ def test_get_linode(self): |
59 | 61 | self.assertEqual(linode.lke_cluster_id, None) |
60 | 62 | self.assertEqual(linode.maintenance_policy, "linode/migrate") |
61 | 63 |
|
| 64 | + self.assertIsInstance(linode.backups, InstanceBackups) |
| 65 | + self.assertTrue(linode.backups.enabled) |
| 66 | + self.assertTrue(linode.backups.available) |
| 67 | + self.assertEqual(linode.backups.last_successful, "2018-01-01T00:01:01") |
| 68 | + self.assertIsInstance(linode.backups.schedule, InstanceBackupSchedule) |
| 69 | + self.assertEqual(linode.backups.schedule.day, "Scheduling") |
| 70 | + self.assertEqual(linode.backups.schedule.window, "W02") |
| 71 | + |
62 | 72 | json = linode._raw_json |
63 | 73 | self.assertIsNotNone(json) |
64 | 74 | self.assertEqual(json["id"], 123) |
@@ -229,6 +239,22 @@ def test_update_linode(self): |
229 | 239 | }, |
230 | 240 | ) |
231 | 241 |
|
| 242 | + def test_update_linode_backups_disabled(self): |
| 243 | + """ |
| 244 | + Tests that an unset backup schedule is sent as explicit nulls |
| 245 | + """ |
| 246 | + with self.mock_put("linode/instances/456") as m: |
| 247 | + linode = self.client.load(Instance, 456) |
| 248 | + linode.save() |
| 249 | + |
| 250 | + self.assertEqual( |
| 251 | + m.call_data["backups"], |
| 252 | + { |
| 253 | + "enabled": False, |
| 254 | + "schedule": {"day": None, "window": None}, |
| 255 | + }, |
| 256 | + ) |
| 257 | + |
232 | 258 | def test_delete_linode(self): |
233 | 259 | """ |
234 | 260 | Tests that deleting a Linode creates the correct api request |
|
0 commit comments