Skip to content

Commit 2bb54cf

Browse files
test: Metadata Taxonomies integration tests (box/box-codegen#897) (#1264)
Co-authored-by: Minh Nguyen Cong <[email protected]>
1 parent 132a1b8 commit 2bb54cf

File tree

2 files changed

+242
-13
lines changed

2 files changed

+242
-13
lines changed

docs/metadata_taxonomies.md

Lines changed: 86 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,13 @@ This operation is performed by calling function `create_metadata_taxonomy`.
2626
See the endpoint docs at
2727
[API Reference](https://developer.box.com/reference/post-metadata-taxonomies/).
2828

29-
_Currently we don't have an example for calling `create_metadata_taxonomy` in integration tests_
29+
<!-- sample post_metadata_taxonomies -->
30+
31+
```python
32+
client.metadata_taxonomies.create_metadata_taxonomy(
33+
display_name, namespace, key=taxonomy_key
34+
)
35+
```
3036

3137
### Arguments
3238

@@ -54,7 +60,11 @@ This operation is performed by calling function `get_metadata_taxonomies`.
5460
See the endpoint docs at
5561
[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id/).
5662

57-
_Currently we don't have an example for calling `get_metadata_taxonomies` in integration tests_
63+
<!-- sample get_metadata_taxonomies_id -->
64+
65+
```python
66+
client.metadata_taxonomies.get_metadata_taxonomies(namespace)
67+
```
5868

5969
### Arguments
6070

@@ -83,7 +93,11 @@ This operation is performed by calling function `get_metadata_taxonomy_by_key`.
8393
See the endpoint docs at
8494
[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id/).
8595

86-
_Currently we don't have an example for calling `get_metadata_taxonomy_by_key` in integration tests_
96+
<!-- sample get_metadata_taxonomies_id_id -->
97+
98+
```python
99+
client.metadata_taxonomies.get_metadata_taxonomy_by_key(namespace, taxonomy_key)
100+
```
87101

88102
### Arguments
89103

@@ -109,7 +123,13 @@ This operation is performed by calling function `update_metadata_taxonomy`.
109123
See the endpoint docs at
110124
[API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id/).
111125

112-
_Currently we don't have an example for calling `update_metadata_taxonomy` in integration tests_
126+
<!-- sample patch_metadata_taxonomies_id_id -->
127+
128+
```python
129+
client.metadata_taxonomies.update_metadata_taxonomy(
130+
namespace, taxonomy_key, updated_display_name
131+
)
132+
```
113133

114134
### Arguments
115135

@@ -138,7 +158,11 @@ This operation is performed by calling function `delete_metadata_taxonomy`.
138158
See the endpoint docs at
139159
[API Reference](https://developer.box.com/reference/delete-metadata-taxonomies-id-id/).
140160

141-
_Currently we don't have an example for calling `delete_metadata_taxonomy` in integration tests_
161+
<!-- sample delete_metadata_taxonomies_id_id -->
162+
163+
```python
164+
client.metadata_taxonomies.delete_metadata_taxonomy(namespace, taxonomy_key)
165+
```
142166

143167
### Arguments
144168

@@ -164,7 +188,18 @@ This operation is performed by calling function `create_metadata_taxonomy_level`
164188
See the endpoint docs at
165189
[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels/).
166190

167-
_Currently we don't have an example for calling `create_metadata_taxonomy_level` in integration tests_
191+
<!-- sample post_metadata_taxonomies_id_id_levels -->
192+
193+
```python
194+
client.metadata_taxonomies.create_metadata_taxonomy_level(
195+
namespace,
196+
taxonomy_key,
197+
[
198+
MetadataTaxonomyLevel(display_name="Continent", description="Continent Level"),
199+
MetadataTaxonomyLevel(display_name="Country", description="Country Level"),
200+
],
201+
)
202+
```
168203

169204
### Arguments
170205

@@ -225,7 +260,13 @@ This operation is performed by calling function `add_metadata_taxonomy_level`.
225260
See the endpoint docs at
226261
[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels:append/).
227262

228-
_Currently we don't have an example for calling `add_metadata_taxonomy_level` in integration tests_
263+
<!-- sample post_metadata_taxonomies_id_id_levels:append -->
264+
265+
```python
266+
client.metadata_taxonomies.add_metadata_taxonomy_level(
267+
namespace, taxonomy_key, "Region", description="Region Description"
268+
)
269+
```
229270

230271
### Arguments
231272

@@ -255,7 +296,11 @@ This operation is performed by calling function `delete_metadata_taxonomy_level`
255296
See the endpoint docs at
256297
[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels:trim/).
257298

258-
_Currently we don't have an example for calling `delete_metadata_taxonomy_level` in integration tests_
299+
<!-- sample post_metadata_taxonomies_id_id_levels:trim -->
300+
301+
```python
302+
client.metadata_taxonomies.delete_metadata_taxonomy_level(namespace, taxonomy_key)
303+
```
259304

260305
### Arguments
261306

@@ -283,7 +328,11 @@ This operation is performed by calling function `get_metadata_taxonomy_nodes`.
283328
See the endpoint docs at
284329
[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id-nodes/).
285330

286-
_Currently we don't have an example for calling `get_metadata_taxonomy_nodes` in integration tests_
331+
<!-- sample get_metadata_taxonomies_id_id_nodes -->
332+
333+
```python
334+
client.metadata_taxonomies.get_metadata_taxonomy_nodes(namespace, taxonomy_key)
335+
```
287336

288337
### Arguments
289338

@@ -323,7 +372,13 @@ This operation is performed by calling function `create_metadata_taxonomy_node`.
323372
See the endpoint docs at
324373
[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-nodes/).
325374

326-
_Currently we don't have an example for calling `create_metadata_taxonomy_node` in integration tests_
375+
<!-- sample post_metadata_taxonomies_id_id_nodes -->
376+
377+
```python
378+
client.metadata_taxonomies.create_metadata_taxonomy_node(
379+
namespace, taxonomy_key, "Europe", 1
380+
)
381+
```
327382

328383
### Arguments
329384

@@ -355,7 +410,13 @@ This operation is performed by calling function `get_metadata_taxonomy_node_by_i
355410
See the endpoint docs at
356411
[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id-nodes-id/).
357412

358-
_Currently we don't have an example for calling `get_metadata_taxonomy_node_by_id` in integration tests_
413+
<!-- sample get_metadata_taxonomies_id_id_nodes_id -->
414+
415+
```python
416+
client.metadata_taxonomies.get_metadata_taxonomy_node_by_id(
417+
namespace, taxonomy_key, country_node.id
418+
)
419+
```
359420

360421
### Arguments
361422

@@ -383,7 +444,13 @@ This operation is performed by calling function `update_metadata_taxonomy_node`.
383444
See the endpoint docs at
384445
[API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id-nodes-id/).
385446

386-
_Currently we don't have an example for calling `update_metadata_taxonomy_node` in integration tests_
447+
<!-- sample patch_metadata_taxonomies_id_id_nodes_id -->
448+
449+
```python
450+
client.metadata_taxonomies.update_metadata_taxonomy_node(
451+
namespace, taxonomy_key, country_node.id, display_name="Poland UPDATED"
452+
)
453+
```
387454

388455
### Arguments
389456

@@ -415,7 +482,13 @@ This operation is performed by calling function `delete_metadata_taxonomy_node`.
415482
See the endpoint docs at
416483
[API Reference](https://developer.box.com/reference/delete-metadata-taxonomies-id-id-nodes-id/).
417484

418-
_Currently we don't have an example for calling `delete_metadata_taxonomy_node` in integration tests_
485+
<!-- sample delete_metadata_taxonomies_id_id_nodes_id -->
486+
487+
```python
488+
client.metadata_taxonomies.delete_metadata_taxonomy_node(
489+
namespace, taxonomy_key, country_node.id
490+
)
491+
```
419492

420493
### Arguments
421494

test/metadata_taxonomies.py

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
import pytest
2+
3+
from box_sdk_gen.client import BoxClient
4+
5+
from box_sdk_gen.schemas.metadata_taxonomy import MetadataTaxonomy
6+
7+
from box_sdk_gen.schemas.metadata_taxonomies import MetadataTaxonomies
8+
9+
from box_sdk_gen.schemas.metadata_taxonomy_levels import MetadataTaxonomyLevels
10+
11+
from box_sdk_gen.schemas.metadata_taxonomy_level import MetadataTaxonomyLevel
12+
13+
from box_sdk_gen.schemas.metadata_taxonomy_node import MetadataTaxonomyNode
14+
15+
from box_sdk_gen.schemas.metadata_taxonomy_nodes import MetadataTaxonomyNodes
16+
17+
from box_sdk_gen.internal.utils import get_uuid
18+
19+
from box_sdk_gen.internal.utils import get_env_var
20+
21+
from box_sdk_gen.internal.utils import delay_in_seconds
22+
23+
from test.commons import get_default_client
24+
25+
client: BoxClient = get_default_client()
26+
27+
28+
def testMetadataTaxonomiesCRUD():
29+
namespace: str = ''.join(['enterprise_', get_env_var('ENTERPRISE_ID')])
30+
uuid: str = get_uuid()
31+
taxonomy_key: str = ''.join(['geography', uuid])
32+
display_name: str = ''.join(['Geography Taxonomy', uuid])
33+
created_taxonomy: MetadataTaxonomy = (
34+
client.metadata_taxonomies.create_metadata_taxonomy(
35+
display_name, namespace, key=taxonomy_key
36+
)
37+
)
38+
assert created_taxonomy.display_name == display_name
39+
assert created_taxonomy.namespace == namespace
40+
taxonomies: MetadataTaxonomies = client.metadata_taxonomies.get_metadata_taxonomies(
41+
namespace
42+
)
43+
assert len(taxonomies.entries) > 0
44+
assert taxonomies.entries[0].namespace == namespace
45+
updated_display_name: str = ''.join(['Geography Taxonomy UPDATED', uuid])
46+
updated_taxonomy: MetadataTaxonomy = (
47+
client.metadata_taxonomies.update_metadata_taxonomy(
48+
namespace, taxonomy_key, updated_display_name
49+
)
50+
)
51+
assert updated_taxonomy.display_name == updated_display_name
52+
assert updated_taxonomy.namespace == namespace
53+
assert updated_taxonomy.id == created_taxonomy.id
54+
get_taxonomy: MetadataTaxonomy = (
55+
client.metadata_taxonomies.get_metadata_taxonomy_by_key(namespace, taxonomy_key)
56+
)
57+
assert get_taxonomy.display_name == updated_display_name
58+
assert get_taxonomy.namespace == namespace
59+
assert get_taxonomy.id == created_taxonomy.id
60+
client.metadata_taxonomies.delete_metadata_taxonomy(namespace, taxonomy_key)
61+
with pytest.raises(Exception):
62+
client.metadata_taxonomies.get_metadata_taxonomy_by_key(namespace, taxonomy_key)
63+
64+
65+
def testMetadataTaxonomiesNodes():
66+
namespace: str = ''.join(['enterprise_', get_env_var('ENTERPRISE_ID')])
67+
uuid: str = get_uuid()
68+
taxonomy_key: str = ''.join(['geography', uuid])
69+
display_name: str = ''.join(['Geography Taxonomy', uuid])
70+
created_taxonomy: MetadataTaxonomy = (
71+
client.metadata_taxonomies.create_metadata_taxonomy(
72+
display_name, namespace, key=taxonomy_key
73+
)
74+
)
75+
assert created_taxonomy.display_name == display_name
76+
assert created_taxonomy.namespace == namespace
77+
taxonomy_levels: MetadataTaxonomyLevels = (
78+
client.metadata_taxonomies.create_metadata_taxonomy_level(
79+
namespace,
80+
taxonomy_key,
81+
[
82+
MetadataTaxonomyLevel(
83+
display_name='Continent', description='Continent Level'
84+
),
85+
MetadataTaxonomyLevel(
86+
display_name='Country', description='Country Level'
87+
),
88+
],
89+
)
90+
)
91+
assert len(taxonomy_levels.entries) == 2
92+
assert taxonomy_levels.entries[0].display_name == 'Continent'
93+
assert taxonomy_levels.entries[1].display_name == 'Country'
94+
taxonomy_levels_after_addition: MetadataTaxonomyLevels = (
95+
client.metadata_taxonomies.add_metadata_taxonomy_level(
96+
namespace, taxonomy_key, 'Region', description='Region Description'
97+
)
98+
)
99+
assert len(taxonomy_levels_after_addition.entries) == 3
100+
assert taxonomy_levels_after_addition.entries[2].display_name == 'Region'
101+
taxonomy_levels_after_deletion: MetadataTaxonomyLevels = (
102+
client.metadata_taxonomies.delete_metadata_taxonomy_level(
103+
namespace, taxonomy_key
104+
)
105+
)
106+
assert len(taxonomy_levels_after_deletion.entries) == 2
107+
assert taxonomy_levels_after_deletion.entries[0].display_name == 'Continent'
108+
assert taxonomy_levels_after_deletion.entries[1].display_name == 'Country'
109+
continent_node: MetadataTaxonomyNode = (
110+
client.metadata_taxonomies.create_metadata_taxonomy_node(
111+
namespace, taxonomy_key, 'Europe', 1
112+
)
113+
)
114+
assert continent_node.display_name == 'Europe'
115+
assert continent_node.level == 1
116+
country_node: MetadataTaxonomyNode = (
117+
client.metadata_taxonomies.create_metadata_taxonomy_node(
118+
namespace, taxonomy_key, 'Poland', 2, parent_id=continent_node.id
119+
)
120+
)
121+
assert country_node.display_name == 'Poland'
122+
assert country_node.level == 2
123+
assert country_node.parent_id == continent_node.id
124+
delay_in_seconds(5)
125+
all_nodes: MetadataTaxonomyNodes = (
126+
client.metadata_taxonomies.get_metadata_taxonomy_nodes(namespace, taxonomy_key)
127+
)
128+
assert len(all_nodes.entries) == 2
129+
updated_country_node: MetadataTaxonomyNode = (
130+
client.metadata_taxonomies.update_metadata_taxonomy_node(
131+
namespace, taxonomy_key, country_node.id, display_name='Poland UPDATED'
132+
)
133+
)
134+
assert updated_country_node.display_name == 'Poland UPDATED'
135+
assert updated_country_node.level == 2
136+
assert updated_country_node.parent_id == country_node.parent_id
137+
assert updated_country_node.id == country_node.id
138+
get_country_node: MetadataTaxonomyNode = (
139+
client.metadata_taxonomies.get_metadata_taxonomy_node_by_id(
140+
namespace, taxonomy_key, country_node.id
141+
)
142+
)
143+
assert get_country_node.display_name == 'Poland UPDATED'
144+
assert get_country_node.id == country_node.id
145+
client.metadata_taxonomies.delete_metadata_taxonomy_node(
146+
namespace, taxonomy_key, country_node.id
147+
)
148+
client.metadata_taxonomies.delete_metadata_taxonomy_node(
149+
namespace, taxonomy_key, continent_node.id
150+
)
151+
delay_in_seconds(5)
152+
all_nodes_after_deletion: MetadataTaxonomyNodes = (
153+
client.metadata_taxonomies.get_metadata_taxonomy_nodes(namespace, taxonomy_key)
154+
)
155+
assert len(all_nodes_after_deletion.entries) == 0
156+
client.metadata_taxonomies.delete_metadata_taxonomy(namespace, taxonomy_key)

0 commit comments

Comments
 (0)