From a940e22065a7803bc3ce6ff48441c4da32e9b0f3 Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Wed, 4 Jan 2023 23:06:20 +0100 Subject: [PATCH] finally fixed duplicate trades --- src/data.py | 4 ++++ src/pyside6/trade_widget.py | 10 ++++++---- tests/test_log.py | 20 +++++++++++++++++++- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/data.py b/src/data.py index 820fed3..bbf580c 100644 --- a/src/data.py +++ b/src/data.py @@ -148,3 +148,7 @@ class Message(): res = re_trade.search(self.message) if res: self.trade = Trade.by_regex_result(res) + + def unique_trade(self) -> int: + assert self.trade + return hash((self.user, self.trade.__hash__())) diff --git a/src/pyside6/trade_widget.py b/src/pyside6/trade_widget.py index 71a0a24..1e0bce8 100644 --- a/src/pyside6/trade_widget.py +++ b/src/pyside6/trade_widget.py @@ -68,17 +68,19 @@ class TradeCollection(QWidget): self.setLayout(self.main_layout) trade = TradeWidget(message, self) self.main_layout.addWidget(trade) - self.trades = {message.trade.__hash__: trade} + self.trades = {message.unique_trade(): trade} def add_trade(self, message: Message) -> None: - if message.trade.__hash__ in self.trades: + assert message.trade + if message.unique_trade() in self.trades: return trade = TradeWidget(message, self) self.main_layout.addWidget(trade) - self.trades[message.trade.__hash__] = trade + self.trades[message.unique_trade()] = trade def del_trade(self, message: Message): - del self.trades[message.trade.__hash__] + assert message.trade + del self.trades[message.unique_trade()] if not self.trades: self.parent.del_collection(self.unique_item) self.deleteLater() diff --git a/tests/test_log.py b/tests/test_log.py index 259f8be..443171d 100644 --- a/tests/test_log.py +++ b/tests/test_log.py @@ -33,6 +33,24 @@ def test_write_to_log_4(): config.read_config(r'config.yaml') log_file = config.get_value('General.log_file') assert (log_file) - text = "2021/05/11 23:34:41 13600796 bad [INFO Client 9008] @From HerculadeDrik: Hi, I would like to buy your Cortex Relic Chambers Map (T15) listed for 3.4 exalted in Ultimatum (stash tab \"$\"; position: left 3, top 9)" + text = "2021/05/11 23:34:41 13600796 bad [INFO Client 9008] @From HerculadeDrik: Hi, I would like to buy your Cortex Relic Chambers Map (T15) listed for 40000000 exalted in Ultimatum (stash tab \"$\"; position: left 3, top 9)" with open(log_file, 'a') as f: f.write(text) + + +def test_write_to_log_41(): + config.read_config(r'config.yaml') + log_file = config.get_value('General.log_file') + assert (log_file) + text = "2021/05/11 23:34:41 13600796 bad [INFO Client 9008] @From MaxMustermann: Hi, I would like to buy your Cortex Relic Chambers Map (T15) listed for 3.4 exalted in Ultimatum (stash tab \"$\"; position: left 3, top 9)" + with open(log_file, 'a') as f: + f.write(text) + + +def test_write_to_log_42(): + config.read_config(r'config.yaml') + log_file = config.get_value('General.log_file') + assert (log_file) + text = "2021/05/11 23:34:41 13600796 bad [INFO Client 9008] @From HenryHase: Hi, I would like to buy your Cortex Relic Chambers Map (T15) listed for 3.4 exalted in Ultimatum (stash tab \"$\"; position: left 3, top 9)" + with open(log_file, 'a') as f: + f.write(text) \ No newline at end of file