Skip to content

Commit

Permalink
Merge pull request #6 from uw-it-aca/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
fanglinfang committed May 30, 2019
2 parents c4edba4 + 9fe8674 commit fe686ab
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 6 deletions.
3 changes: 3 additions & 0 deletions uw_hrp/dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@ def service_name(self):

def service_mock_paths(self):
return [abspath(os.path.join(dirname(__file__), "resources"))]

def is_using_file_dao(self):
return self.get_implementation().is_mock()
17 changes: 11 additions & 6 deletions uw_hrp/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
from restclients_core import models


def get_now():
# return time-zone-aware datetime
return datetime.now(timezone.utc)


def date_to_str(d_obj):
if d_obj is not None:
return str(d_obj)
Expand Down Expand Up @@ -122,8 +127,10 @@ class WorkerPosition(models.Model):
title = models.CharField(max_length=128, null=True, default=None)

def is_active_position(self):
now = datetime.now(timezone.utc)
return self.end_date is None or self.end_date > now
return self.end_date is None or self.end_date > get_now()

def is_future_position(self):
return self.start_date is not None and self.start_date > get_now()

def to_json(self):
data = {'start_date': date_to_str(self.start_date),
Expand Down Expand Up @@ -171,10 +178,8 @@ def __init__(self, *args, **kwargs):
self.fte_percent = float(data.get("PositionFTEPercent"))
if data.get("PositionStartDate") is not None:
self.start_date = parse_date(data["PositionStartDate"])

if data.get("PositionEndDate") is not None:
self.end_date = parse_date(data["PositionEndDate"])

if data.get("PositionSupervisor") is not None:
self.supervisor_eid = data["PositionSupervisor"]["EmployeeID"]

Expand Down Expand Up @@ -210,8 +215,8 @@ def __str__(self):
def __init__(self, *args, **kwargs):
data = kwargs.get("data")
self.employee_status = None
self.primary_position = None
self.other_active_positions = []
self.primary_position = None # only 1 primary position
self.other_active_positions = [] # include the future position

if data is None:
return super(Worker, self).__init__(*args, **kwargs)
Expand Down
1 change: 1 addition & 0 deletions uw_hrp/tests/test_dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ def test_dao(self):
dao = HRP_DAO()
self.assertEqual(dao.service_name(), "hrpws")
self.assertTrue(len(dao.service_mock_paths()) > 0)
self.assertTrue(dao.is_using_file_dao())
16 changes: 16 additions & 0 deletions uw_hrp/tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,22 @@ def test_worker_position(self):
self.assertFalse(work_position.is_active_position())
self.assertIsNotNone(str(work_position))

work_position = WorkerPosition(
data={"PositionStartDate": "1994-10-01T00:00:00.000Z",
"PositionEndDate": str(datetime.now(timezone.utc) +
timedelta(minutes=1)),
"PositionFTEPercent": "100.00000"})
self.assertTrue(work_position.is_active_position())
self.assertFalse(work_position.is_future_position())

work_position = WorkerPosition(
data={"PositionStartDate": str(datetime.now(timezone.utc) +
timedelta(minutes=1)),
"PositionEndDate": None,
"PositionFTEPercent": "100.00000"})
self.assertTrue(work_position.is_active_position())
self.assertTrue(work_position.is_future_position())

def test_worker(self):
worker = Worker(netid='none',
regid="10000000",
Expand Down

0 comments on commit fe686ab

Please sign in to comment.