Skip to content
Snippets Groups Projects
Commit ac9bc4aa authored by Philip Elson's avatar Philip Elson :snake:
Browse files

Merge branch 'mr-upstream-32'

* mr-upstream-32:
  Add test coverage for getParam with getHeader=True.
  Added support for setStamp in the header
parents b891e664 85e9eefc
Branches
Tags v2.1.0
1 merge request!32Added support for setStamp in the header
Pipeline #1454315 failed
......@@ -541,7 +541,7 @@ class PyJapc(object):
noPyConversion is set to True, the JAPC ParameterValue object is
returned and has to be converted manually to a Python type.
An example for getting a Parameter with header informations::
An example for getting a Parameter with header information::
value, header = japc.getParam("LHC.BQS.SCTL/BunchSelector#BunchSelControl", getHeader=True)
print(value)
......@@ -549,8 +549,11 @@ class PyJapc(object):
print(header)
{'acqStamp': datetime.datetime(2016, 3, 11, 13, 10, 25, 515000, tzinfo=<UTC>),
'cycleStamp': datetime.datetime(1970, 1, 1, 0, 0, tzinfo=<UTC>),
'isFirstUpdate': 0,
'isImmediateUpdate': 0}
'isFirstUpdate': False,
'isImmediateUpdate': False,
'selector': "no-selector",
'setStamp': datetime.datetime(1970, 1, 1, 0, 0, tzinfo=<UTC>),
}
An example for getting a ParameterGroup::
......@@ -1454,6 +1457,7 @@ class PyJapc(object):
if unixtime:
headerDict["acqStamp"] = valueHeader.getAcqStamp() / 1e9
headerDict["cycleStamp"] = valueHeader.getCycleStamp() / 1e9
headerDict["setStamp"] = valueHeader.getSetStamp() / 1e9
else:
headerDict["acqStamp"] = datetime.datetime.fromtimestamp(valueHeader.getAcqStamp() / 1e9,
tz=self._selectedTimezone)
......@@ -1461,6 +1465,9 @@ class PyJapc(object):
headerDict["cycleStamp"] = datetime.datetime.fromtimestamp(valueHeader.getCycleStamp() / 1e9,
tz=self._selectedTimezone)
# headerDict["cycleStampMillis"] = valueHeader.getCycleStampMillis()
headerDict["setStamp"] = datetime.datetime.fromtimestamp(valueHeader.getSetStamp() / 1e9,
tz=self._selectedTimezone)
# headerDict["setStampMillis"] = valueHeader.getSetStampMillis()
headerDict["isFirstUpdate"] = bool(valueHeader.isFirstUpdate())
headerDict["isImmediateUpdate"] = bool(valueHeader.isImmediateUpdate())
......
......@@ -8,6 +8,7 @@ Created on Wed May 20 08:59:32 2015
# see https://gitlab.cern.ch/acc-co/japc/japc-core/blob/develop/japc-ext-mockito2/src/java/cern/japc/ext/mockito/demo/Demo.java
"""
import gc
import datetime
import time
from unittest import mock as unittest_mock
......@@ -139,6 +140,25 @@ def test_get_value():
assert japc.getParam('TEST/TestProperty') == 42
def test_get_value_header():
param = 'TEST/TestProperty'
mock = mockParameter(param)
whenGetValueThen(mock, sel('LHC.USER.TEST'), acqVal(param, 42, 0))
japc.setSelector('LHC.USER.TEST')
values, headers = japc.getParam('TEST/TestProperty', getHeader=True)
assert values == 42
assert isinstance(headers, dict)
assert isinstance(headers.pop('acqStamp'), datetime.datetime)
assert isinstance(headers.pop('cycleStamp'), datetime.datetime)
assert isinstance(headers.pop('setStamp'), datetime.datetime)
assert headers == dict(
isFirstUpdate=False,
isImmediateUpdate=False,
# TODO: The selector looks wrong. Bug in mockito implementation?
selector='no-selector',
)
def test_async_get():
param = 'TEST/TestProperty'
callback = unittest_mock.Mock()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment