Skip to content

Commit

Permalink
Issue #7 - Adding check for derivations to Packet._hasattr, expanding…
Browse files Browse the repository at this point in the history
… test of DerivationDefinition
  • Loading branch information
aywaldron authored and MJJoyce committed Sep 4, 2019
1 parent 958637c commit f96b719
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
15 changes: 14 additions & 1 deletion ait/core/test/test_tlm.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,13 @@ class TestDerivationDefinition(object):
yaml_docs_deriv1 = (
'- !Packet\n'
' name: OCO3_1553_EHS\n'
' fields:\n'
' - !Field\n'
' name: field_1\n'
' type: MSB_U16\n'
' - !Field\n'
' name: field_2\n'
' type: MSB_U16\n'
' derivations:\n'
' - !Derivation\n'
' name: deriv_1\n'
Expand All @@ -141,11 +148,17 @@ def tearDown(self):

def test_derivation_definition(self):
tlmdict = tlm.TlmDict(self.test_yaml_deriv1)
deriv1 = tlmdict['OCO3_1553_EHS'].derivations[0]
pktdefn = tlmdict['OCO3_1553_EHS']
deriv1 = pktdefn.derivations[0]
assert deriv1.name == 'deriv_1'
assert type(deriv1.equation) == tlm.PacketExpression
assert deriv1.equation.toJSON() == 'field_1 + field_2'

pkt = tlm.Packet(pktdefn)
pkt.field_1 = 1
pkt.field_2 = 2
assert pkt.deriv_1 == 3

def test_deriv_defn_notitle(self):
test_yaml_deriv2 = '/tmp/test_deriv2.yaml'
yaml_docs_deriv2 = (
Expand Down
4 changes: 3 additions & 1 deletion ait/core/tlm.py
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,9 @@ def _getattr (self, fieldname, raw=False, index=None):
def _hasattr(self, fieldname):
"""Returns True if this packet contains fieldname, False otherwise."""
special = 'history', 'raw'
return fieldname in special or fieldname in self._defn.fieldmap
return (fieldname in special or
fieldname in self._defn.fieldmap or
fieldname in self._defn.derivationmap)


@property
Expand Down

0 comments on commit f96b719

Please sign in to comment.