Skip to content

Commit

Permalink
✅ Unit Test
Browse files Browse the repository at this point in the history
  • Loading branch information
mraniki committed Jul 5, 2024
1 parent beb6220 commit 6839795
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 65 deletions.
29 changes: 12 additions & 17 deletions findmyorder/handler/basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,20 +43,15 @@ async def identify_order(
action, instrument
"""
try:
action = (
one_of(self.action_identifier, caseless=True)
.set_results_name("action")
.set_parse_action(pyparsing_common.upcase_tokens)
)
instrument = Word(alphas + nums).set_results_name("instrument")

order_grammar = action("action") + Optional(instrument, default=None)

order = order_grammar.parse_string(instring=my_string, parse_all=False)
logger.debug("Order parsed {}", order)
return order.asDict()

except Exception as error:
logger.error(error)
return error
action = (
one_of(self.action_identifier, caseless=True)
.set_results_name("action")
.set_parse_action(pyparsing_common.upcase_tokens)
)
instrument = Word(alphas + nums).set_results_name("instrument")

order_grammar = action("action") + Optional(instrument, default=None)

order = order_grammar.parse_string(instring=my_string, parse_all=False)
logger.debug("Order parsed {}", order)
return order.asDict()
2 changes: 1 addition & 1 deletion findmyorder/handler/handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ async def search(self, message: str) -> bool:
# logger.debug("Action identifiers: {}", self.action_identifiers)
if order_identifier in self.action_identifier:

logger.debug("Order identifier found in {}", order_identifier)
# logger.debug("Order identifier found in {}", order_identifier)
return True

return False
Expand Down
83 changes: 39 additions & 44 deletions findmyorder/handler/standard.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,49 +48,44 @@ async def identify_order(
logger.debug("No order identified")
return None
else:
try:
action = (
one_of(self.action_identifier, caseless=True)
.set_results_name("action")
.set_parse_action(pyparsing_common.upcase_tokens)
)
instrument = Word(alphas + nums).set_results_name("instrument")
stop_loss = Combine(
Suppress(self.stop_loss_identifier) + Word(nums)
).set_results_name("stop_loss")
take_profit = Combine(
Suppress(self.take_profit_identifier) + Word(nums)
).set_results_name("take_profit")
quantity = Combine(
Suppress(self.quantity_identifier)
+ Word(nums)
+ Optional(Suppress("%"))
).set_results_name("quantity")
order_type = one_of(
self.order_type_identifier, caseless=True
).set_results_name("order_type")
leverage_type = one_of(
self.leverage_type_identifier, caseless=True
).set_results_name("leverage_type")
comment = Combine(
Suppress(self.comment_identifier) + Word(alphas)
).set_results_name("comment")
action = (
one_of(self.action_identifier, caseless=True)
.set_results_name("action")
.set_parse_action(pyparsing_common.upcase_tokens)
)
instrument = Word(alphas + nums).set_results_name("instrument")
stop_loss = Combine(
Suppress(self.stop_loss_identifier) + Word(nums)
).set_results_name("stop_loss")
take_profit = Combine(
Suppress(self.take_profit_identifier) + Word(nums)
).set_results_name("take_profit")
quantity = Combine(
Suppress(self.quantity_identifier)
+ Word(nums)
+ Optional(Suppress("%"))
).set_results_name("quantity")
order_type = one_of(
self.order_type_identifier, caseless=True
).set_results_name("order_type")
leverage_type = one_of(
self.leverage_type_identifier, caseless=True
).set_results_name("leverage_type")
comment = Combine(
Suppress(self.comment_identifier) + Word(alphas)
).set_results_name("comment")

order_grammar = (
action("action")
+ Optional(instrument, default=None)
+ Optional(stop_loss, default=self.stop_loss)
+ Optional(take_profit, default=self.take_profit)
+ Optional(quantity, default=self.quantity)
+ Optional(order_type, default=None)
+ Optional(leverage_type, default=None)
+ Optional(comment, default=None)
)
order_grammar = (
action("action")
+ Optional(instrument, default=None)
+ Optional(stop_loss, default=self.stop_loss)
+ Optional(take_profit, default=self.take_profit)
+ Optional(quantity, default=self.quantity)
+ Optional(order_type, default=None)
+ Optional(leverage_type, default=None)
+ Optional(comment, default=None)
)

order = order_grammar.parse_string(instring=my_string, parse_all=False)
logger.debug("Order parsed {}", order)
return order.asDict()

except Exception as error:
logger.error(error)
return error
order = order_grammar.parse_string(instring=my_string, parse_all=False)
logger.debug("Order parsed {}", order)
return order.asDict()
8 changes: 6 additions & 2 deletions findmyorder/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,15 @@ def __init__(
logger.info("FindMyOrder is disabled. No Parser will be created.")
self.client_classes = self.get_all_client_classes()
self.clients = []
# Create a client for each client in settings.myllm
# Create a client for each client in settings
for name, client_config in settings.findmyorder.items():
# logger.debug("client_config: {}", client_config)
# Skip template and empty string client names
if name in ["", "template"] or not client_config.get("enabled"):
if (
client_config is None
or name in ["", "template"]
or not client_config.get("enabled")
):
continue
try:
# Create the client
Expand Down
2 changes: 1 addition & 1 deletion tests/test_exception.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def fmo():


@pytest.mark.asyncio
async def test_info(fmo):
async def test_exception(fmo):
"""Search Testing"""
for client in fmo.clients:
assert client is None

0 comments on commit 6839795

Please sign in to comment.