Skip to content

Commit 45bc883

Browse files
feat: TT-43 add unit test to extend_model
1 parent ece1dc7 commit 45bc883

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

tests/utils/extend_model_test.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
from time_tracker_api.customers.customers_model import CustomerCosmosDBModel
2+
from time_tracker_api.projects.projects_model import ProjectCosmosDBModel
3+
from unittest.mock import patch
4+
from utils.extend_model import add_custom_attribute
5+
6+
7+
@patch('time_tracker_api.project_types.project_types_model.create_dao')
8+
@patch('time_tracker_api.customers.customers_model.create_dao')
9+
def test_add_custom_attribute(customers_create_dao, projects_create_dao):
10+
expected_result = {
11+
"name": "Franklin, Mcdonald and Morrison",
12+
"description": "Include speech feeling court almost country smile economy. True quality mention key. Similar provide yard.",
13+
"customer_id": "9afbfa3a-9de4-4b90-a1b7-a53d2c17a178",
14+
"project_type_id": "208aadb7-1ec1-4a67-a0b0-e0308d27045b",
15+
"technologies": "['python', 'restplus', 'openapi']",
16+
"status": "active",
17+
"customer_name": "Tucker Inc",
18+
"customer": {
19+
"name": None,
20+
"description": None
21+
},
22+
"project_type": {
23+
"name": None,
24+
"description": None
25+
},
26+
"id": "768c924e-4501-457f-99c5-7198440d3c60",
27+
"tenant_id": "e2953984-03e7-4730-be29-1753d24df3b0",
28+
"deleted": "null"
29+
}
30+
31+
@add_custom_attribute('project_type', projects_create_dao())
32+
@add_custom_attribute('customer', customers_create_dao())
33+
@patch('time_tracker_api.projects.projects_model.ProjectCosmosDBModel')
34+
def fn(project):
35+
project.return_value.name = "Franklin, Mcdonald and Morrison",
36+
project.return_value.description = "Include speech feeling court almost country smile economy. True quality mention key. Similar provide yard.",
37+
project.return_value.customer_id = "9afbfa3a-9de4-4b90-a1b7-a53d2c17a178",
38+
project.return_value.project_type_id = "208aadb7-1ec1-4a67-a0b0-e0308d27045b",
39+
project.return_value.technologies = "['python', 'restplus', 'openapi']",
40+
project.return_value.status = "active",
41+
project.return_value.customer_name = "Tucker Inc",
42+
project.return_value.id = "768c924e-4501-457f-99c5-7198440d3c60",
43+
project.return_value.tenant_id = "e2953984-03e7-4730-be29-1753d24df3b0",
44+
project.return_value.deleted = None,
45+
46+
return project.return_value
47+
48+
assert 'customer' in fn().__dict__
49+
assert 'project_type' in fn().__dict__

0 commit comments

Comments
 (0)