Skip to content

Commit

Permalink
fix-datasegment.field will return the result in underlying type
Browse files Browse the repository at this point in the history
  • Loading branch information
SamDanielThangarajan committed Jan 23, 2025
1 parent 9a64f08 commit ab54434
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/nasdaq_protocols/fix/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,8 @@ def __getitem__(self, key: str | int):
return self.__dict__[key]

try:
return self.values[key]
field_value = self.values[key]
return field_value.value if isinstance(field_value, Field) else field_value
except KeyError:
field = self.IndexedEntries[key]
return field.default_value() if issubclass(field, Field) else None
Expand Down
2 changes: 1 addition & 1 deletion src/nasdaq_protocols/fix/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ async def send_heartbeat(self):

def _initialize_session(self, logon_msg):
self.session_id.username = logon_msg.Username
self.sequence = count(logon_msg.Header.MsgSeqNum.value)
self.sequence = count(logon_msg.Header.MsgSeqNum)
self.sender_comp_id = logon_msg.Header.SenderCompID
self.sender_sub_id = logon_msg.Header.SenderSubID
self.target_comp_id = logon_msg.Header.TargetCompID
Expand Down
8 changes: 8 additions & 0 deletions tests/test_fix_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,14 @@ def test__getattr__message__able_to_resolve_segment_fields():
assert message.GroupContainer_2 is None


def test__getattr__message__field_is_decayed_to_its_value():
message = Message_1()
message.Field_1_Int = 10

assert message.Field_1_Int == 10
assert isinstance(message.Field_1_Int, int)


def test__getattr__message__fall_back_to_object_attributes_on_non_segment_fields():
message = Message_1()

Expand Down

0 comments on commit ab54434

Please sign in to comment.