Skip to content

Commit

Permalink
test: Retention policy assignments integration test (box/box-codegen#390
Browse files Browse the repository at this point in the history
) (#67)
  • Loading branch information
box-sdk-build authored Mar 4, 2024
1 parent 3844e04 commit 3268bda
Show file tree
Hide file tree
Showing 3 changed files with 148 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .codegen.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{ "engineHash": "df5b5de", "specHash": "b2f7568", "version": "0.1.0" }
{ "engineHash": "332479b", "specHash": "b2f7568", "version": "0.1.0" }
26 changes: 21 additions & 5 deletions docs/retention_policy_assignments.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@ This operation is performed by calling function `get_retention_policy_assignment
See the endpoint docs at
[API Reference](https://developer.box.com/reference/get-retention-policies-id-assignments/).

_Currently we don't have an example for calling `get_retention_policy_assignments` in integration tests_
<!-- sample get_retention_policies_id_assignments -->

```python
client.retention_policy_assignments.get_retention_policy_assignments(retention_policy_id=retention_policy.id)
```

### Arguments

Expand Down Expand Up @@ -53,7 +57,7 @@ See the endpoint docs at
<!-- sample post_retention_policy_assignments -->

```python
client.retention_policy_assignments.create_retention_policy_assignment(policy_id=retention_policy.id, assign_to=CreateRetentionPolicyAssignmentAssignTo(id=folder.id, type=CreateRetentionPolicyAssignmentAssignToTypeField.FOLDER.value))
client.retention_policy_assignments.create_retention_policy_assignment(policy_id=retention_policy.id, assign_to=CreateRetentionPolicyAssignmentAssignTo(type=CreateRetentionPolicyAssignmentAssignToTypeField.FOLDER.value, id=folder.id))
```

### Arguments
Expand Down Expand Up @@ -84,7 +88,11 @@ This operation is performed by calling function `get_retention_policy_assignment
See the endpoint docs at
[API Reference](https://developer.box.com/reference/get-retention-policy-assignments-id/).

_Currently we don't have an example for calling `get_retention_policy_assignment_by_id` in integration tests_
<!-- sample get_retention_policy_assignments_id -->

```python
client.retention_policy_assignments.get_retention_policy_assignment_by_id(retention_policy_assignment_id=retention_policy_assignment.id)
```

### Arguments

Expand All @@ -111,7 +119,11 @@ This operation is performed by calling function `delete_retention_policy_assignm
See the endpoint docs at
[API Reference](https://developer.box.com/reference/delete-retention-policy-assignments-id/).

_Currently we don't have an example for calling `delete_retention_policy_assignment_by_id` in integration tests_
<!-- sample delete_retention_policy_assignments_id -->

```python
client.retention_policy_assignments.delete_retention_policy_assignment_by_id(retention_policy_assignment_id=retention_policy_assignment.id)
```

### Arguments

Expand All @@ -136,7 +148,11 @@ This operation is performed by calling function `get_files_under_retention_polic
See the endpoint docs at
[API Reference](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention/).

_Currently we don't have an example for calling `get_files_under_retention_policy_assignment` in integration tests_
<!-- sample get_retention_policy_assignments_id_files_under_retention -->

```python
client.retention_policy_assignments.get_files_under_retention_policy_assignment(retention_policy_assignment_id=retention_policy_assignment.id)
```

### Arguments

Expand Down
126 changes: 126 additions & 0 deletions test/retention_policy_assignments.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
from box_sdk_gen.client import BoxClient

from box_sdk_gen.schemas import RetentionPolicy

from box_sdk_gen.managers.retention_policies import CreateRetentionPolicyPolicyType

from box_sdk_gen.managers.retention_policies import (
CreateRetentionPolicyDispositionAction,
)

from box_sdk_gen.managers.retention_policies import CreateRetentionPolicyRetentionType

from box_sdk_gen.schemas import FolderFull

from box_sdk_gen.managers.folders import CreateFolderParent

from box_sdk_gen.schemas import Files

from box_sdk_gen.managers.uploads import UploadFileAttributes

from box_sdk_gen.managers.uploads import UploadFileAttributesParentField

from box_sdk_gen.schemas import FileFull

from box_sdk_gen.managers.uploads import UploadFileVersionAttributes

from box_sdk_gen.schemas import RetentionPolicyAssignment

from box_sdk_gen.managers.retention_policy_assignments import (
CreateRetentionPolicyAssignmentAssignTo,
)

from box_sdk_gen.managers.retention_policy_assignments import (
CreateRetentionPolicyAssignmentAssignToTypeField,
)

from box_sdk_gen.schemas import RetentionPolicyAssignments

from box_sdk_gen.schemas import FilesUnderRetention

from box_sdk_gen.internal.utils import decode_base_64

from box_sdk_gen.internal.utils import get_env_var

from box_sdk_gen.internal.utils import get_uuid

from box_sdk_gen.internal.utils import generate_byte_stream

from test.commons import get_default_client

client: BoxClient = get_default_client()


def testCreateUpdateGetDeleteRetentionPolicyAssignment():
retention_policy_name: str = get_uuid()
retention_description: str = 'test description'
retention_policy: RetentionPolicy = (
client.retention_policies.create_retention_policy(
policy_name=retention_policy_name,
description=retention_description,
policy_type=CreateRetentionPolicyPolicyType.FINITE.value,
disposition_action=CreateRetentionPolicyDispositionAction.REMOVE_RETENTION.value,
retention_length='1',
retention_type=CreateRetentionPolicyRetentionType.MODIFIABLE.value,
can_owner_extend_retention=True,
are_owners_notified=True,
)
)
folder: FolderFull = client.folders.create_folder(
name=get_uuid(), parent=CreateFolderParent(id='0')
)
files: Files = client.uploads.upload_file(
attributes=UploadFileAttributes(
name=get_uuid(), parent=UploadFileAttributesParentField(id=folder.id)
),
file=generate_byte_stream(10),
)
file: FileFull = files.entries[0]
new_versions: Files = client.uploads.upload_file_version(
file_id=file.id,
attributes=UploadFileVersionAttributes(name=get_uuid()),
file=generate_byte_stream(20),
)
new_version: FileFull = new_versions.entries[0]
retention_policy_assignment: RetentionPolicyAssignment = (
client.retention_policy_assignments.create_retention_policy_assignment(
policy_id=retention_policy.id,
assign_to=CreateRetentionPolicyAssignmentAssignTo(
type=CreateRetentionPolicyAssignmentAssignToTypeField.FOLDER.value,
id=folder.id,
),
)
)
assert retention_policy_assignment.retention_policy.id == retention_policy.id
assert retention_policy_assignment.assigned_to.id == folder.id
retention_policy_assignment_by_id: RetentionPolicyAssignment = (
client.retention_policy_assignments.get_retention_policy_assignment_by_id(
retention_policy_assignment_id=retention_policy_assignment.id
)
)
assert retention_policy_assignment_by_id.id == retention_policy_assignment.id
retention_policy_assignments: RetentionPolicyAssignments = (
client.retention_policy_assignments.get_retention_policy_assignments(
retention_policy_id=retention_policy.id
)
)
assert len(retention_policy_assignments.entries) == 1
files_under_retention: FilesUnderRetention = (
client.retention_policy_assignments.get_files_under_retention_policy_assignment(
retention_policy_assignment_id=retention_policy_assignment.id
)
)
assert len(files_under_retention.entries) == 1
client.retention_policy_assignments.delete_retention_policy_assignment_by_id(
retention_policy_assignment_id=retention_policy_assignment.id
)
retention_policy_assignments_after_delete: RetentionPolicyAssignments = (
client.retention_policy_assignments.get_retention_policy_assignments(
retention_policy_id=retention_policy.id
)
)
assert len(retention_policy_assignments_after_delete.entries) == 0
client.retention_policies.delete_retention_policy_by_id(
retention_policy_id=retention_policy.id
)
client.files.delete_file_by_id(file_id=file.id)

0 comments on commit 3268bda

Please sign in to comment.