Skip to content

Commit bfc6555

Browse files
Added unit, API, and mock tests for asset localization using query parameter
1 parent d804112 commit bfc6555

File tree

8 files changed

+67
-2
lines changed

8 files changed

+67
-2
lines changed

.talismanrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,4 +403,6 @@ fileignoreconfig:
403403
checksum: 0db30c5a306783b10d345d73cff3c61490d7cbc47273623df47e6849c3e97002
404404
- filename: tests/unit/contentstack/test_totp_login.py
405405
checksum: cefad0ddc1a2db1bf59d6e04501c4381acc8b44fad1e5e2e24c06e33d827c859
406+
- filename: tests/mock/assets/test_assets_mock.py
407+
checksum: 12c9091bb88c0c12712f046b29fb4a9dce3b95ecc45f4ea46bbc3fd4529742a0
406408
version: "1.0"

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
# CHANGELOG
22

33
## Content Management SDK For Python
4+
---
5+
## v1.8.0
6+
7+
#### Date: 30 March 2026
8+
9+
- Added unit, API, and mock tests for asset localization using query parameter (for example `en-us` via `add_param`).
10+
411
---
512
## v1.7.2
613

contentstack_management/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
__author__ = 'dev-ex'
8383
__status__ = 'debug'
8484
__region__ = 'na'
85-
__version__ = '1.7.2'
85+
__version__ = '1.8.0'
8686
__host__ = 'api.contentstack.io'
8787
__protocol__ = 'https://'
8888
__api_version__ = 'v3'

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
python-dotenv>=1.0.0,<2.0.0
22
setuptools>=80.0.0
33
requests>=2.32.4,<3.0.0
4+
urllib3>=2.6.3,<3.0.0
45
pylint>=2.0.0
56
bson>=0.5.9,<1.0.0
67
requests-toolbelt>=1.0.0,<2.0.0

setup.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,12 @@ def get_author_email(package):
4949
"Programming Language :: Python :: 3.10",
5050
"Operating System :: OS Independent",
5151
],
52-
install_requires=["bson >= 0.5.9", "requests >= 2.5.4", "requests-toolbelt >= 0.3.1"],
52+
install_requires=[
53+
"bson >= 0.5.9",
54+
"requests >= 2.5.4",
55+
"requests-toolbelt >= 0.3.1",
56+
"urllib3 >= 2.6.3",
57+
],
5358
extras_require={
5459
"dev": ["pytest>=7.0", "twine>=4.0.2", "dotenv>=0.0.5"],
5560
},

tests/api/assets/test_assets.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,24 @@ def test_get_asset(self):
3030
else:
3131
self.assertEqual(response.request.method, "GET")
3232

33+
def test_get_all_assets_with_locale(self):
34+
assets = self.client.stack(api_key).assets()
35+
assets.add_param("locale", "en-us")
36+
response = assets.find()
37+
if response.status_code == 200:
38+
self.assertEqual(response.status_code, 200)
39+
else:
40+
self.assertEqual(response.request.method, "GET")
41+
42+
def test_get_asset_with_locale(self):
43+
asset = self.client.stack(api_key).assets(asset_uid)
44+
asset.add_param("locale", "en-us")
45+
response = asset.fetch()
46+
if response.status_code == 200:
47+
self.assertEqual(response.status_code, 200)
48+
else:
49+
self.assertEqual(response.request.method, "GET")
50+
3351
def test_delete(self):
3452
response = self.client.stack(api_key).assets(asset_uid).delete()
3553
if response.status_code == 200:

tests/mock/assets/test_assets_mock.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,20 @@ def test_get_asset(self):
3434
response = self.client.stack(api_key).assets(asset_uid).fetch().json()
3535
self.assertEqual(asset_uid, response["assets"]["uid"])
3636

37+
def test_get_all_assets_with_locale(self):
38+
assets = self.client.stack(api_key).assets()
39+
assets.add_param("locale", "en-us")
40+
response = assets.find().json()
41+
read_mock_asset_data = read_file("find.json")
42+
mock_asset_data = json.loads(read_mock_asset_data)
43+
self.assertEqual(mock_asset_data.keys(), response.keys())
44+
45+
def test_get_asset_with_locale(self):
46+
asset = self.client.stack(api_key).assets(asset_uid)
47+
asset.add_param("locale", "en-us")
48+
response = asset.fetch().json()
49+
self.assertEqual(asset_uid, response["assets"]["uid"])
50+
3751
def test_delete(self):
3852
response = self.client.stack(api_key).assets(asset_uid).delete().json()
3953
self.assertEqual("Asset deleted successfully.", response['notice'])

tests/unit/assets/test_assets_unit.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,24 @@ def test_get_asset(self):
3030
self.assertEqual(response.request.headers["Content-Type"], "application/json")
3131
self.assertEqual(response.request.body, None)
3232

33+
def test_find_with_locale(self):
34+
assets = self.client.stack(api_key).assets()
35+
assets.add_param("locale", "en-us")
36+
response = assets.find()
37+
self.assertEqual(response.request.url, f"{self.client.endpoint}assets?locale=en-us")
38+
self.assertEqual(response.request.method, "GET")
39+
self.assertEqual(response.request.headers["Content-Type"], "application/json")
40+
self.assertEqual(response.request.body, None)
41+
42+
def test_fetch_with_locale(self):
43+
asset = self.client.stack(api_key).assets(asset_uid)
44+
asset.add_param("locale", "en-us")
45+
response = asset.fetch()
46+
self.assertEqual(response.request.url, f"{self.client.endpoint}assets/{asset_uid}?locale=en-us")
47+
self.assertEqual(response.request.method, "GET")
48+
self.assertEqual(response.request.headers["Content-Type"], "application/json")
49+
self.assertEqual(response.request.body, None)
50+
3351
def test_delete(self):
3452
response = self.client.stack(api_key).assets(asset_uid).delete()
3553
self.assertEqual(response.request.url, f"{self.client.endpoint}assets/{asset_uid}")

0 commit comments

Comments
 (0)