Skip to content

Commit 24d3927

Browse files
Added Mock test and Api Test cases
1 parent 1d14bce commit 24d3927

40 files changed

+1092
-163
lines changed

.DS_Store

8 KB
Binary file not shown.

.github/.DS_Store

6 KB
Binary file not shown.

.github/workflows/release.yml

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,42 @@ jobs:
2424
- name: Publish
2525
uses: pypa/gh-action-pypi-publish@master
2626
with:
27-
password: ${{ secrets.pypi_password }}
28-
skip_existing: true
27+
password: ${{ secrets.pypi_test_password }}
28+
skip_existing: true
29+
30+
generate_and_upload_coverage:
31+
name: Generate and Upload Coverage Report
32+
runs-on: ubuntu-latest
33+
34+
steps:
35+
- name: Checkout code
36+
uses: actions/checkout@v2
37+
38+
- name: Set up Python
39+
uses: actions/setup-python@v2
40+
with:
41+
python-version: '3.x'
42+
43+
- name: Install dependencies
44+
run: pip install -r requirements.txt
45+
46+
- name: Run tests and generate coverage report
47+
run: |
48+
coverage run --source=my_package -m unittest discover tests/
49+
coverage report -m > coverage.txt
50+
51+
- name: Archive coverage report
52+
uses: actions/upload-artifact@v2
53+
with:
54+
name: coverage-report
55+
path: coverage.txt
56+
57+
- name: Configure AWS credentials
58+
uses: aws-actions/configure-aws-credentials@v1
59+
with:
60+
aws-access-key-id: ${{ secrets.Test_AWS_ACCESS_KEY_ID }}
61+
aws-secret-access-key: ${{ secrets.Test_AWS_SECRET_ACCESS_KEY }}
62+
aws-region: <your_aws_region> # Replace with your actual AWS region
63+
64+
- name: Upload coverage report to S3
65+
run: aws s3 cp coverage.txt s3://<your_bucket_name>/coverage.txt

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,6 @@ dmypy.json
128128
# Pyre type checker
129129
.pyre/
130130
tests/config/default.yml
131+
.talismanrc
132+
.vscode/settings.json
133+
run.py

contentstack_management/core/client.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
from ..organizations.organizations import Organization
99
from ..users.user import User
1010
from ..stack.stack import Stack
11-
import http.cookiejar
12-
1311
from ..user_session.user_session import UserSession
1412

1513
class ApiClient:

contentstack_management/core/http_client.py

Lines changed: 0 additions & 104 deletions
This file was deleted.

contentstack_management/organizations/organizations.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,17 @@ def get_organization_roles(self):
3333
return self.api_client.get(url, headers = self.headers)
3434

3535

36-
def organization_add_users(self):
36+
def organization_add_users(self, user_data):
3737
url = f"organizations/{self.organization_uid}/share"
3838
self.headers['authtoken'] = self.authtoken
39-
return self.api_client.get(url, headers = self.headers)
39+
data = json.dumps(user_data)
40+
return self.api_client.post(url, headers = self.headers, data = data)
4041

4142
def transfer_organizations_ownership(self, data):
4243
url = f"organizations/{self.organization_uid}/transfer-ownership"
4344
self.headers['authtoken'] = self.authtoken
4445
data = json.dumps(data)
45-
return self.api_client.post(url, headers = self.headers, data=data)
46+
return self.api_client.post(url, headers = self.headers, data = data)
4647

4748

4849
def organization_stacks(self):

tests/.DS_Store

6 KB
Binary file not shown.

tests/config/default.yml.enc

Lines changed: 0 additions & 10 deletions
This file was deleted.

tests/organizations/test_api.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import unittest
2+
import json
3+
import os
4+
from dotenv import load_dotenv
5+
from contentstack_management import contentstack
6+
7+
def load_api_keys():
8+
load_dotenv()
9+
class OrganizationTests(unittest.TestCase):
10+
11+
def setUp(self):
12+
load_api_keys()
13+
self.client = contentstack.client(host=os.getenv("host"))
14+
self.client.login(os.getenv("email"), os.getenv("password"))
15+
16+
17+
def test_organization_get(self):
18+
response = self.client.organizations().get()
19+
if response.status_code == 200:
20+
self.assertEqual(response.status_code, 200)
21+
else:
22+
self.assertEqual(response.status_code, 400)
23+
24+
25+
def test_get_organization(self):
26+
response = self.client.organizations(os.getenv("org_uid")).get()
27+
if response.status_code == 200:
28+
self.assertEqual(response.status_code, 200)
29+
else:
30+
self.assertEqual(response.status_code, 400)
31+
32+
def test_get_organizations(self):
33+
response = self.client.organizations().get()
34+
if response.status_code == 200:
35+
self.assertEqual(response.status_code, 200)
36+
else:
37+
self.assertEqual(response.status_code, 400)
38+
39+
def test_get_organization_roles(self):
40+
response = self.client.organizations(os.getenv('org_uid')).get_organization_roles()
41+
if response.status_code == 200:
42+
self.assertEqual(response.status_code, 200)
43+
else:
44+
self.assertEqual(response.status_code, 400)
45+
46+
def test_organization_add_users(self):
47+
response = self.client.organizations(os.getenv('org_uid')).organization_add_users()
48+
if response.status_code == 200:
49+
self.assertEqual(response.status_code, 200)
50+
else:
51+
self.assertEqual(response.status_code, 400)
52+
53+
def test_transfer_organizations_ownership(self):
54+
data = {"transfer_to": "abc@sample.com"}
55+
response= self.client.organizations(os.getenv('org_uid')).transfer_organizations_ownership(json.dumps(data))
56+
if response.status_code == 200:
57+
self.assertEqual(response.status_code, 200)
58+
else:
59+
self.assertEqual(response.status_code, 400)
60+
61+
def test_organization_stacks(self):
62+
response = self.client.organizations(os.getenv('org_uid')).organization_stacks()
63+
if response.status_code == 200:
64+
self.assertEqual(response.status_code, 200)
65+
else:
66+
self.assertEqual(response.status_code, 400)
67+
68+
def test_organization_logs(self):
69+
response = self.client.organizations(os.getenv('org_uid')).organization_logs()
70+
if response.status_code == 200:
71+
self.assertEqual(response.status_code, 200)
72+
else:
73+
self.assertEqual(response.status_code, 400)
74+
75+
76+
77+
if __name__ == '__main__':
78+
unittest.main()

0 commit comments

Comments
 (0)