Skip to content
Merged
Show file tree
Hide file tree
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
Next Next commit
refactor: TT-201 add fucntion to add update last entry flag in model
  • Loading branch information
kellycastrof committed Apr 1, 2021
commit d2f5d5b1d4441ad7f4ed18ca99425d864f81aeca
53 changes: 46 additions & 7 deletions tests/time_tracker_api/api_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,55 @@ def test_remove_required_constraint():
from flask_restplus import Namespace

ns = Namespace('todos', description='Namespace for testing')
sample_model = ns.model('Todo', {
'id': fields.Integer(readonly=True, description='The task unique identifier'),
'task': fields.String(required=True, description='The task details'),
'done': fields.Boolean(required=False, description='Has it being done or not')
})
sample_model = ns.model(
'Todo',
{
'id': fields.Integer(
readonly=True, description='The task unique identifier'
),
'task': fields.String(
required=True, description='The task details'
),
'done': fields.Boolean(
required=False, description='Has it being done or not'
),
},
)

new_model = remove_required_constraint(sample_model)

assert new_model is not sample_model

for attrib in sample_model:
assert new_model[attrib].required is False, "No attribute should be required"
assert new_model[attrib] is not sample_model[attrib], "No attribute should be required"
assert (
new_model[attrib].required is False
), "No attribute should be required"
assert (
new_model[attrib] is not sample_model[attrib]
), "No attribute should be required"


def test_add_update_last_entry_flag():
from time_tracker_api.api import add_update_last_entry_flag
from flask_restplus import fields
from flask_restplus import Namespace

ns = Namespace('todos', description='Namespace for testing')
sample_model = ns.model(
'Todo',
{
'id': fields.Integer(
readonly=True, description='The task unique identifier'
),
'task': fields.String(
required=True, description='The task details'
),
},
)

new_model = add_update_last_entry_flag(sample_model)

assert new_model is not sample_model

update_last_entry_flag = new_model.get('update_last_entry')
assert update_last_entry_flag is not None
13 changes: 13 additions & 0 deletions time_tracker_api/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,19 @@ def remove_required_constraint(model: Model):
return result


def add_update_last_entry_flag(time_entry_model: Model):
time_entry_flag = {
'update_last_entry': fields.Boolean(
title='Update last entry',
required=False,
description='Flag that indicates if the last time entry is updated',
example=True,
)
}
new_model = time_entry_model.clone('TimeEntryInput', time_entry_flag)
return new_model


def create_attributes_filter(
ns: namespace, model: Model, filter_attrib_names: list
) -> RequestParser:
Expand Down