Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: TT-261 refactor code based on PR reviews
  • Loading branch information
kevinjlope committed Jun 11, 2021
commit 8c89c81a923bfd0a8a32a659484d2ae5223720d5
73 changes: 40 additions & 33 deletions tests/time_tracker_api/time_entries/time_entries_repository_test.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
from utils.extend_model import (
add_project_info_to_time_entries,
add_activity_name_to_time_entries,
)
from utils.azure_users import AzureConnection, AzureUser
from time_tracker_api.time_entries.time_entries_repository import (
TimeEntryCosmosDBModel,
TimeEntryCosmosDBRepository,
)
from time_tracker_api.time_entries.time_entries_dao import (
TimeEntriesCosmosDBDao,
)

from time_tracker_api.projects.projects_model import (
ProjectCosmosDBDao,
ProjectCosmosDBModel,
Expand All @@ -18,9 +14,7 @@
)


def test_add_complementary_info(
mocker,
):
def create_time_entry_data():
time_entry_data = {
'id': 'id',
'start_date': '2021-03-22T10:00:00.000Z',
Expand All @@ -30,7 +24,12 @@ def test_add_complementary_info(
'project_id': 'project_id1',
'activity_id': 'activity_id1',
'technologies': ['python', 'pytest'],
'owner_id': 'id',
}
return time_entry_data


def create_project_data():
project_data = {
'customer_id': 'dsakldh12ASD',
'id': 'project_id1',
Expand All @@ -39,51 +38,59 @@ def test_add_complementary_info(
'project_type_id': "id2",
'tenant_id': 'tenantid1',
}
return project_data


def create_activity_data():
activity_data = {
'id': 'activity_id1',
'name': 'activity',
'description': 'testing',
"tenant_id": 'nomatter',
}
return activity_data


def test_add_complementary_info(
mocker,
time_entry_repository: TimeEntryCosmosDBRepository,
):
projects_db_get_all_mock = mocker.patch.object(
ProjectCosmosDBDao, 'get_all'
)
activities_db_get_all_mock = mocker.patch.object(
ActivityCosmosDBDao, 'get_all'
)
time_entry_db_get_all_mock = mocker.patch.object(
TimeEntriesCosmosDBDao, 'get_all'
)
users_mock = mocker.patch.object(AzureConnection, 'users')

expected_projects = ProjectCosmosDBModel(project_data)
expected_activities = ActivityCosmosDBModel(activity_data)
expected_time_entry = TimeEntryCosmosDBModel(time_entry_data)
setattr(expected_projects, 'customer_name', 'customer_name')
expected_project = ProjectCosmosDBModel(create_project_data())
expected_activity = ActivityCosmosDBModel(create_activity_data())
expected_time_entry_in = TimeEntryCosmosDBModel(create_time_entry_data())
expected_users = AzureUser('email1', [], 'id', 'name', ['admin'])
setattr(expected_project, 'customer_name', 'customer_name')

projects_db_get_all_mock.return_value = expected_projects
activities_db_get_all_mock.return_value = expected_activities
time_entry_db_get_all_mock.return_value = expected_time_entry
projects_db_get_all_mock.return_value = [expected_project]
activities_db_get_all_mock.return_value = [expected_activity]
users_mock.return_value = [expected_users]

add_project_info_to_time_entries(
[expected_time_entry], [expected_projects]
)
add_activity_name_to_time_entries(
[expected_time_entry], [expected_activities]
expected_time_entry_out = time_entry_repository.add_complementary_info(
[expected_time_entry_in], max_count=None, exist_conditions=True
)

assert isinstance(expected_time_entry_out[0], TimeEntryCosmosDBModel)
assert (
expected_time_entry.__dict__['project_name']
== expected_projects.__dict__['name']
expected_time_entry_out[0].__dict__['project_name']
== expected_project.__dict__['name']
)
assert (
expected_time_entry.__dict__['customer_id']
== expected_projects.__dict__['customer_id']
expected_time_entry_out[0].__dict__['customer_id']
== expected_project.__dict__['customer_id']
)
assert (
expected_time_entry.__dict__['customer_name']
== expected_projects.__dict__['customer_name']
expected_time_entry_out[0].__dict__['customer_name']
== expected_project.__dict__['customer_name']
)
assert (
expected_time_entry.__dict__['activity_name']
== expected_activities.__dict__['name']
expected_time_entry_out[0].__dict__['activity_name']
== expected_activity.__dict__['name']
)