Skip to content

Commit

Permalink
Merge pull request #863 from Ostorlab/fix/asset-class-use-non-data-field
Browse files Browse the repository at this point in the history
Fix: Make asset classes fields dataclass fields
  • Loading branch information
3asm authored Feb 17, 2025
2 parents 19a1686 + 4e3f442 commit 54a8a8c
Show file tree
Hide file tree
Showing 15 changed files with 43 additions and 92 deletions.
18 changes: 5 additions & 13 deletions src/ostorlab/assets/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,11 @@
class Agent(asset.Asset):
"""Agent asset."""

def __init__(
self,
key: str,
version: Optional[str] = None,
git_location: Optional[str] = None,
docker_location: Optional[str] = None,
yaml_file_location: Optional[str] = None,
):
self.key = key
self.version = version
self.git_location = git_location
self.docker_location = docker_location
self.yaml_file_location = yaml_file_location
key: str
version: Optional[str] = None
git_location: Optional[str] = None
docker_location: Optional[str] = None
yaml_file_location: Optional[str] = None

def __str__(self) -> str:
if self.version is not None:
Expand Down
12 changes: 3 additions & 9 deletions src/ostorlab/assets/android_aab.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,9 @@
class AndroidAab(asset.Asset):
"""Android .AAB target asset."""

def __init__(
self,
content: Optional[bytes] = None,
path: Optional[str] = None,
content_url: Optional[str] = None,
):
self.content = content
self.path = path
self.content_url = content_url
content: Optional[bytes] = None
path: Optional[str] = None
content_url: Optional[str] = None

def __str__(self) -> str:
str_representation = "Android AAB"
Expand Down
12 changes: 3 additions & 9 deletions src/ostorlab/assets/android_apk.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,9 @@
class AndroidApk(asset.Asset):
"""Android .APK target asset."""

def __init__(
self,
content: Optional[bytes] = None,
path: Optional[str] = None,
content_url: Optional[str] = None,
):
self.content = content
self.path = path
self.content_url = content_url
content: Optional[bytes] = None
path: Optional[str] = None
content_url: Optional[str] = None

def __str__(self) -> str:
str_representation = "Android APK"
Expand Down
3 changes: 1 addition & 2 deletions src/ostorlab/assets/android_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
class AndroidStore(asset.Asset):
"""Android store package target asset."""

def __init__(self, package_name: str):
self.package_name = package_name
package_name: str

def __str__(self) -> str:
return f"Android Store: ({self.package_name})"
Expand Down
15 changes: 4 additions & 11 deletions src/ostorlab/assets/api_schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,10 @@
class ApiSchema(asset.Asset):
"""API Schema target asset."""

def __init__(
self,
endpoint_url: str,
content: Optional[bytes] = None,
content_url: Optional[str] = None,
schema_type: Optional[str] = None,
):
self.content = content
self.endpoint_url = endpoint_url
self.schema_type = schema_type
self.content_url = content_url
endpoint_url: str
content: Optional[bytes] = None
content_url: Optional[str] = None
schema_type: Optional[str] = None

def __str__(self) -> str:
str_representation = CLASS_NAME
Expand Down
3 changes: 1 addition & 2 deletions src/ostorlab/assets/domain_name.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
class DomainName(asset.Asset):
"""Domain Name target asset per RFC 1034 and 1035."""

def __init__(self, name: str):
self.name = name
name: str

def __str__(self) -> str:
return self.name
Expand Down
12 changes: 3 additions & 9 deletions src/ostorlab/assets/file.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,9 @@
class File(asset.Asset):
"""File target asset."""

def __init__(
self,
content: Optional[bytes] = None,
path: Optional[str] = None,
content_url: Optional[str] = None,
):
self.content = content
self.path = path
self.content_url = content_url
content: Optional[bytes] = None
path: Optional[str] = None
content_url: Optional[str] = None

def __str__(self) -> str:
str_representation = "File"
Expand Down
12 changes: 3 additions & 9 deletions src/ostorlab/assets/ios_ipa.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,9 @@
class IOSIpa(asset.Asset):
"""IOS .IPA target asset."""

def __init__(
self,
content: Optional[bytes] = None,
path: Optional[str] = None,
content_url: Optional[str] = None,
):
self.content = content
self.path = path
self.content_url = content_url
content: Optional[bytes] = None
path: Optional[str] = None
content_url: Optional[str] = None

def __str__(self) -> str:
str_representation = "iOS"
Expand Down
3 changes: 1 addition & 2 deletions src/ostorlab/assets/ios_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
class IOSStore(asset.Asset):
"""Ios bundle target asset."""

def __init__(self, bundle_id: str):
self.bundle_id = bundle_id
bundle_id: str

def __str__(self) -> str:
return f"iOS Store ({self.bundle_id})"
Expand Down
3 changes: 1 addition & 2 deletions src/ostorlab/assets/ios_testflight.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
class IOSTestflight(asset.Asset):
"""iOS testflight target asset."""

def __init__(self, application_url: str):
self.application_url = application_url
application_url: str

def __str__(self) -> str:
return f"iOS Testflight ({self.application_url})"
Expand Down
13 changes: 7 additions & 6 deletions src/ostorlab/assets/ip.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@
class IP(asset.Asset):
"""IP Address target asset."""

def __init__(
self, host: str, version: Optional[int] = None, mask: Optional[str] = None
):
self.host = host
self.version = version or ipaddress.ip_address(self.host).version
self.mask = mask
host: str
version: Optional[int] = None
mask: Optional[str] = None

def __post_init__(self) -> None:
if self.version is None:
self.version = ipaddress.ip_address(self.host).version

def __str__(self) -> str:
return f"{self.host}/{self.mask}"
9 changes: 3 additions & 6 deletions src/ostorlab/assets/ipv4.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,9 @@
class IPv4(asset.Asset):
"""IPv4 Address target asset."""

def __init__(
self, host: str, version: Optional[int] = 4, mask: Optional[str] = None
):
self.host = host
self.version = version
self.mask = mask
host: str
version: int = 4
mask: Optional[str] = None

def __str__(self) -> str:
return f"{self.host}/{self.mask}"
Expand Down
9 changes: 3 additions & 6 deletions src/ostorlab/assets/ipv6.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,9 @@
class IPv6(asset.Asset):
"""IPv6 Address target asset."""

def __init__(
self, host: str, version: Optional[int] = 6, mask: Optional[str] = None
):
self.host = host
self.version = version
self.mask = mask
host: str
version: int = 6
mask: Optional[str] = None

def __str__(self) -> str:
return f"{self.host}/{self.mask}"
Expand Down
5 changes: 2 additions & 3 deletions src/ostorlab/assets/link.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@
class Link(asset.Asset):
"""Agent asset."""

def __init__(self, url: str, method: str):
self.url = url
self.method = method
url: str
method: str

def __str__(self) -> str:
return f"Link {self.url} with method {self.method}"
Expand Down
6 changes: 3 additions & 3 deletions tests/runtimes/definitions_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -407,13 +407,13 @@ def testAssetGroupDefinitionFromYaml_whenYamlIsValid_returnsValidAssetGroupDefin
content=b"content", path="/tests/files/fake_app.aab"
),
android_aab_asset.AndroidAab(
content=b"content", path="/tests/files/fake_app_2.apk"
content=b"content", path="/tests/files/fake_app_2.aab"
),
android_apk_asset.AndroidApk(
content=b"content", path="/tests/files/fake_app.aab"
content=b"content", path="/tests/files/fake_app.apk"
),
android_apk_asset.AndroidApk(
content=b"content", path="/tests/files/fake_app_2.aab"
content=b"content", path="/tests/files/fake_app_2.apk"
),
ios_ipa_asset.IOSIpa(content=b"content", path="/files/fake_app.ipa"),
ios_ipa_asset.IOSIpa(content_url="https://cia.sketchy.com/secret_files.ipa"),
Expand Down

0 comments on commit 54a8a8c

Please sign in to comment.