Skip to content

Commit

Permalink
correct implementation and test for python 2.7
Browse files Browse the repository at this point in the history
  • Loading branch information
tcezard committed Dec 26, 2017
1 parent 1d33a82 commit 679b867
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 17 deletions.
12 changes: 10 additions & 2 deletions pyclarity_lims/descriptors.py
Original file line number Diff line number Diff line change
Expand Up @@ -748,10 +748,18 @@ def _parse_element(self, element, lims, **kwargs):
queue_date = None
if qt is not None:
h, s, t = qt.text.rpartition(':')
qt = h + t
microsec = ''
if '.' in qt:
microsec = '.%f'
date_format = '%Y-%m-%dT%H:%M:%S' + microsec
try:
queue_date = datetime.datetime.strptime(h+t, '%Y-%m-%dT%H:%M:%S.%f%z')
queue_date = datetime.datetime.strptime(qt, date_format + '%z')
except ValueError:
queue_date = datetime.datetime.strptime(h + t, '%Y-%m-%dT%H:%M:%S%z')
# support for python 2.7 ignore time zone
# use python 3 for timezone support
qt = qt.split('+')[0]
queue_date = datetime.datetime.strptime(qt, date_format)
list.append(self, (input, queue_date, location))


Expand Down
47 changes: 32 additions & 15 deletions tests/test_descriptors.py
Original file line number Diff line number Diff line change
Expand Up @@ -756,28 +756,45 @@ def setUp(self):
self.lims = Lims('http://testgenologics.com:4040', username='test', password='password')
self.instance1 = Mock(root=et, lims=self.lims)

def get_queue_art(self, art_id, pos, microsec, time_delta):
if version_info[0] == 2:
return (
Artifact(self.lims, id=art_id),
datetime.datetime(2011, 12, 25, 1, 10, 10, microsec),
(Container(self.lims, id='c1'), pos)
)
else:
return (
Artifact(self.lims, id=art_id),
datetime.datetime(2011, 12, 25, 1, 10, 10, microsec, tzinfo=datetime.timezone(time_delta)),
(Container(self.lims, id='c1'), pos)
)

def test_parse(self):
queued_artifacts = QueuedArtifactList(self.instance1)
qart = (
Artifact(self.lims, id='a1'),
datetime.datetime(2011, 12, 25, 1, 10, 10, 50000, tzinfo=datetime.timezone.utc),
(Container(self.lims, id='c1'), 'A:1')
)
# qart = (
# Artifact(self.lims, id='a1'),
# datetime.datetime(2011, 12, 25, 1, 10, 10, 50000, tzinfo=datetime.timezone.utc),
# (Container(self.lims, id='c1'), 'A:1')
# )
qart = self.get_queue_art('a1', 'A:1', 50000, datetime.timedelta(0, 0))
assert queued_artifacts[0] == qart
qart = (
Artifact(self.lims, id='a2'),
datetime.datetime(2011, 12, 25, 1, 10, 10, 200000, tzinfo=datetime.timezone(datetime.timedelta(0, 3600))),
(Container(self.lims, id='c1'), 'A:2')
)
# qart = (
# Artifact(self.lims, id='a2'),
# datetime.datetime(2011, 12, 25, 1, 10, 10, 200000, tzinfo=datetime.timezone(datetime.timedelta(second=3600))),
# (Container(self.lims, id='c1'), 'A:2')
# )
qart = self.get_queue_art('a2', 'A:2', 200000, datetime.timedelta(0, 3600))
assert queued_artifacts[1] == qart

def test_set(self):
queued_artifacts = QueuedArtifactList(self.instance1)
qart = (
Artifact(self.lims, id='a3'),
datetime.datetime(2011, 12, 25, 1, 10, 11, 50000, tzinfo=datetime.timezone.utc),
(Container(self.lims, id='c1'), 'A:3')
)
# qart = (
# Artifact(self.lims, id='a3'),
# datetime.datetime(2011, 12, 25, 1, 10, 11, 50000, tzinfo=datetime.timezone.utc),
# (Container(self.lims, id='c1'), 'A:3')
# )
qart = self.get_queue_art('a1', 'A:3', 50000, datetime.timedelta(0, 0))
with pytest.raises(NotImplementedError):
queued_artifacts.append(qart)

Expand Down

0 comments on commit 679b867

Please sign in to comment.