Coverage for amazonorders/entity/seller.py: 96.15%
26 statements
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-16 21:17 +0000
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-16 21:17 +0000
1import logging
3from amazonorders.entity.parsable import Parsable
4from amazonorders.session import BASE_URL
6__author__ = "Alex Laird"
7__copyright__ = "Copyright 2024, Alex Laird"
8__version__ = "0.0.5"
10logger = logging.getLogger(__name__)
13class Seller(Parsable):
14 def __init__(self,
15 parsed,
16 item=None,
17 order=None) -> None:
18 super().__init__(parsed)
20 self.item = item
21 self.order = order
23 self.name = self.safe_parse(self._parse_name)
24 self.link = self.safe_parse(self._parse_link)
26 def __repr__(self) -> str:
27 return "<Seller: \"{}\">".format(self.name)
29 def __str__(self) -> str: # pragma: no cover
30 return "Seller: \"{}\"".format(self.name)
32 def _parse_name(self):
33 tag = self.parsed.find("a")
34 if not tag:
35 tag = self.parsed.find("span")
36 value = tag.text
37 if "Sold by:" in value:
38 value = value.split("Sold by:")[1]
39 return value.strip()
41 def _parse_link(self):
42 tag = self.parsed.find("a")
43 if tag:
44 return "{}{}".format(BASE_URL, tag.attrs["href"])