Skip to content

Commit dddcc24

Browse files
authored
Bump urllibl3 version to 2.0.7 and fix Azure unit tests (#502)
* Bump urllibl3 version to 2.0.7 * Fix unit tests * Update unit test * Bump library version to 20240214 * Last poetry lock run * Appease mypy * Appease mypy
1 parent 5ee8af0 commit dddcc24

8 files changed

Lines changed: 680 additions & 655 deletions

File tree

libcloudforensics/providers/gcp/internal/bigquery.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,5 @@ def ListBigQueryJobs(self) -> List[Dict[str, Any]]:
5555
"""
5656
bq_jobs = self.GoogleBigQueryApi().jobs() # pylint: disable=no-member
5757
request = bq_jobs.list(projectId=self.project_id, projection='full')
58-
jobs = request.execute() # type: Dict[str, Any]
59-
return jobs.get('jobs', [])
58+
jobs: List[Dict[str, Any]] = request.execute().get('jobs', [])
59+
return jobs

libcloudforensics/providers/gcp/internal/cloudsql.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,5 @@ def ListCloudSQLInstances(self) -> List[Dict[str, Any]]:
5656
"""
5757
gcsql_instances = self.GoogleCloudSQLApi().instances() # pylint: disable=no-member
5858
request = gcsql_instances.list(project=self.project_id)
59-
instances = request.execute() # type: Dict[str, Any]
60-
return instances.get('items', [])
59+
instances: List[Dict[str, Any]] = request.execute().get('items', [])
60+
return instances

libcloudforensics/providers/gcp/internal/storage.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ def ListBuckets(self) -> List[Dict[str, Any]]:
135135
"""
136136
gcs_buckets = self.GcsApi().buckets() # pylint: disable=no-member
137137
request = gcs_buckets.list(project=self.project_id)
138-
objects = request.execute() # type: Dict[str, Any]
139-
return objects.get('items', [])
138+
objects: List[Dict[str, Any]] = request.execute().get('items', [])
139+
return objects
140140

141141
def ListBucketObjects(self, bucket: str) -> List[Dict[str, Any]]:
142142
"""List objects (with metadata) in a Google Cloud Storage bucket.
@@ -152,8 +152,8 @@ def ListBucketObjects(self, bucket: str) -> List[Dict[str, Any]]:
152152
bucket = bucket[5:]
153153
gcs_objects = self.GcsApi().objects() # pylint: disable=no-member
154154
request = gcs_objects.list(bucket=bucket)
155-
objects = request.execute() # type: Dict[str, Any]
156-
return objects.get('items', [])
155+
objects: List[Dict[str, Any]] = request.execute().get('items', [])
156+
return objects
157157

158158
def DeleteObject(self, gcs_path: str) -> None:
159159
"""Deletes an object in a Google Cloud Storage bucket.

poetry.lock

Lines changed: 652 additions & 631 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "libcloudforensics"
3-
version = "20230601"
3+
version = "20240214"
44
description = "libcloudforensics is a set of tools to help acquire forensic evidence from Cloud platforms."
55
authors = ["cloud-forensics-utils development team <cloud-forensics-utils-dev@googlegroups.com>"]
66
license = "Apache-2.0"
@@ -10,14 +10,15 @@ readme = "README.md"
1010
python = "^3.8"
1111
google-api-core = "^2.11.1"
1212
azure-common = "^1.1.28"
13-
azure-core = "^1.28.0"
13+
azure-core = "^1.29.4"
1414
azure-identity = "^1.13.0"
1515
azure-mgmt-compute = "^30.1.0"
1616
azure-mgmt-monitor = "^6.0.1"
1717
azure-mgmt-network = "^24.0.0"
18-
azure-mgmt-resource = "23.0.1"
18+
azure-mgmt-reservations = "^2.3.0"
19+
azure-mgmt-resource = "^23.0.1"
1920
azure-mgmt-storage = "^21.0.0"
20-
azure-storage-blob = "^12.17.0"
21+
azure-storage-blob = "^12.18.1"
2122
boto3 = "^1.28.20"
2223
botocore = ">=1.29.135"
2324
google-api-python-client = "^2.95.0"
@@ -31,9 +32,11 @@ sshpubkeys = "^3.3.1"
3132
requests = "^2.31.0"
3233
kubernetes = "^27.2.0"
3334
pyopenssl = "^23.2.0"
34-
urllib3 = ">=1.21.1,<1.27"
35+
urllib3 = [
36+
{version = ">=1.25.4,<1.27", python = "<3.10"},
37+
{version = ">=1.25.4,<2.1", python = ">=3.10"}
38+
]
3539
google-auth = "^2.22.0"
36-
azure-mgmt-reservations = "^2.3.0"
3740

3841
[tool.poetry.group.dev.dependencies]
3942
coverage = "^7.2.7"

tests/providers/azure/azure_mocks.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,8 @@
130130
MOCK_LIST_VM_SIZES = [{
131131
'Name': 'fake-vm-type',
132132
'CPU': 4,
133-
'Memory': 8192
133+
'Memory': 8192,
134+
'Family': 'standardB1lsFamily'
134135
}]
135136

136137
MOCK_ANALYSIS_INSTANCE = mock.Mock(

tests/providers/azure/internal/test_compute.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ def testGetDisk(self, mock_list_disks, mock_provider):
124124
self.assertEqual(['fake-zone'], disk.zones)
125125

126126
@mock.patch('azure.mgmt.resource.resources.v2022_09_01.operations.ProvidersOperations.get')
127-
@mock.patch('azure.mgmt.compute.v2023_01_02.operations.DisksOperations.begin_create_or_update')
127+
@mock.patch('azure.mgmt.compute.v2023_10_02.operations.DisksOperations.begin_create_or_update')
128128
@typing.no_type_check
129129
def testCreateDiskFromSnapshot(self, mock_create_disk, mock_provider):
130130
"""Test that a disk can be created from a snapshot."""
@@ -193,7 +193,7 @@ def testCreateDiskFromSnapshot(self, mock_create_disk, mock_provider):
193193
@mock.patch('azure.storage.blob._blob_service_client.BlobServiceClient.__init__')
194194
@mock.patch('libcloudforensics.providers.azure.internal.storage.AZStorage.DeleteStorageAccount')
195195
@mock.patch('libcloudforensics.providers.azure.internal.storage.AZStorage.CreateStorageAccount')
196-
@mock.patch('azure.mgmt.compute.v2023_01_02.operations.DisksOperations.begin_create_or_update')
196+
@mock.patch('azure.mgmt.compute.v2023_10_02.operations.DisksOperations.begin_create_or_update')
197197
@typing.no_type_check
198198
def testCreateDiskFromSnapshotUri(self,
199199
mock_create_disk,
@@ -239,7 +239,7 @@ def testCreateDiskFromSnapshotUri(self,
239239
@mock.patch('libcloudforensics.providers.azure.internal.compute.AZCompute.GetInstance')
240240
@mock.patch('libcloudforensics.providers.azure.internal.compute.AZCompute._GetInstanceType')
241241
@mock.patch('libcloudforensics.providers.azure.internal.network.AZNetwork.CreateNetworkInterface')
242-
@mock.patch('azure.mgmt.compute.v2023_03_01.operations.VirtualMachinesOperations.begin_create_or_update')
242+
@mock.patch('azure.mgmt.compute.v2023_09_01.operations.VirtualMachinesOperations.begin_create_or_update')
243243
@typing.no_type_check
244244
def testGetOrCreateAnalysisVm(self,
245245
mock_vm,
@@ -279,12 +279,12 @@ def testGetOrCreateAnalysisVm(self,
279279
self.assertTrue(created)
280280

281281
@mock.patch('azure.mgmt.resource.resources.v2022_09_01.operations.ProvidersOperations.get')
282-
@mock.patch('azure.mgmt.compute.v2021_07_01.operations.ResourceSkusOperations.list')
282+
@mock.patch('libcloudforensics.providers.azure.internal.compute.AZCompute.ListInstanceTypes')
283283
@typing.no_type_check
284284
def testListVMSizes(self, mock_list, mock_provider):
285285
"""Test that instance types are correctly listed."""
286286
mock_provider.return_value = azure_mocks.MOCK_CAPACITY_PROVIDER
287-
mock_list.return_value = azure_mocks.MOCK_REQUEST_VM_SIZE
287+
mock_list.return_value = azure_mocks.MOCK_LIST_VM_SIZES
288288
available_vms = azure_mocks.FAKE_ACCOUNT.compute.ListInstanceTypes()
289289
self.assertEqual(1, len(available_vms))
290290
self.assertEqual('fake-vm-type', available_vms[0]['Name'])
@@ -315,7 +315,7 @@ class AZVirtualMachineTest(unittest.TestCase):
315315

316316
@mock.patch('azure.mgmt.resource.resources.v2022_09_01.operations.ProvidersOperations.get')
317317
@mock.patch('libcloudforensics.providers.azure.internal.compute.AZCompute.ListDisks')
318-
@mock.patch('azure.mgmt.compute.v2023_03_01.operations.VirtualMachinesOperations.get')
318+
@mock.patch('azure.mgmt.compute.v2023_09_01.operations.VirtualMachinesOperations.get')
319319
@typing.no_type_check
320320
def testGetBootDisk(self, mock_get_vm, mock_list_disk, mock_provider):
321321
"""Test that the boot disk from an instance is retrieved."""
@@ -346,7 +346,7 @@ def testGetDisk(self, mock_list_disk):
346346

347347
@mock.patch('azure.mgmt.resource.resources.v2022_09_01.operations.ProvidersOperations.get')
348348
@mock.patch('libcloudforensics.providers.azure.internal.compute.AZCompute.ListDisks')
349-
@mock.patch('azure.mgmt.compute.v2023_03_01.operations.VirtualMachinesOperations.get')
349+
@mock.patch('azure.mgmt.compute.v2023_09_01.operations.VirtualMachinesOperations.get')
350350
@typing.no_type_check
351351
def testListDisks(self, mock_get_vm, mock_list_disk, mock_provider):
352352
"""Test that disks from an instance are correctly listed."""

tests/providers/azure/test_forensics.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class AZForensicsTest(unittest.TestCase):
4040
@mock.patch('libcloudforensics.providers.azure.internal.compute.AZCompute.GetDisk')
4141
@mock.patch('libcloudforensics.providers.azure.internal.compute.AZComputeVirtualMachine.GetBootDisk')
4242
@mock.patch('libcloudforensics.providers.azure.internal.compute.AZCompute.GetInstance')
43-
@mock.patch('azure.mgmt.compute.v2023_01_02.operations.DisksOperations.begin_create_or_update')
43+
@mock.patch('azure.mgmt.compute.v2023_10_02.operations.DisksOperations.begin_create_or_update')
4444
@typing.no_type_check
4545
def testCreateDiskCopy1(self,
4646
mock_create_disk,
@@ -92,7 +92,7 @@ def testCreateDiskCopy1(self,
9292
@mock.patch('libcloudforensics.providers.azure.internal.compute.AZCompute.GetDisk')
9393
@mock.patch('libcloudforensics.providers.azure.internal.compute.AZComputeVirtualMachine.GetBootDisk')
9494
@mock.patch('libcloudforensics.providers.azure.internal.compute.AZCompute.GetInstance')
95-
@mock.patch('azure.mgmt.compute.v2023_01_02.operations.DisksOperations.begin_create_or_update')
95+
@mock.patch('azure.mgmt.compute.v2023_10_02.operations.DisksOperations.begin_create_or_update')
9696
@typing.no_type_check
9797
def testCreateDiskCopy2(self,
9898
mock_create_disk,

0 commit comments

Comments
 (0)