Browse Source

Item: added attr 'url'

Fabian Peter Hammerle 6 years ago
parent
commit
cb9dcc38e7
2 changed files with 10 additions and 3 deletions
  1. 4 0
      finoex/__init__.py
  2. 6 3
      tests/test_yaml.py

+ 4 - 0
finoex/__init__.py

@@ -273,6 +273,7 @@ class Item(_Object, _YamlInitConstructor, _YamlVarsRepresenter):
                  name=None,
                  price_brutto=None,
                  sub_items=None,
+                 url=None,
                  ):
         if not name is None:
             assert type(name) is str
@@ -285,6 +286,9 @@ class Item(_Object, _YamlInitConstructor, _YamlVarsRepresenter):
             assert all([isinstance(i, Item) for i in sub_items])
             self.sub_items = sub_items
         self.price_brutto = price_brutto
+        if url is not None:
+            assert type(url) is str
+            self.url = url
 
     @property
     def total_price_brutto(self):

+ 6 - 3
tests/test_yaml.py

@@ -28,10 +28,11 @@ def get_sum_b():
     return finoex.Sum(20.45, u'€')
 
 
-def get_item_a(sub_items = False):
+def get_item_a(sub_items=False, set_url=False):
     item = finoex.Item(
         name = u'item a',
         price_brutto = get_sum_a(),
+        url='http://shop.at/item-a' if set_url else None,
         )
     if sub_items:
         item.sub_items.append(get_item_b())
@@ -322,13 +323,14 @@ name: discount c
     [get_figure_a(), u"!figure '12.3 km'\n"],
     [get_figure_b(), u"!figure '12300 米'\n"],
     [get_item_a(), u"!item\nname: item a\nprice_brutto: !sum '1.23 EUR'\n"],
-    [get_item_a(sub_items=True), u"""!item
+    [get_item_a(sub_items=True, set_url=True), u"""!item
 name: item a
 price_brutto: !sum '1.23 EUR'
 sub_items:
 - !item
   name: item β
   price_brutto: !sum '20.45 EUR'
+url: http://shop.at/item-a
 """],
     [get_item_b(), u"!item\nname: item β\nprice_brutto: !sum '20.45 EUR'\n"],
     [get_person_a(), u'!person\nfirst_name: Fabian Peter\nlast_name: Hammerle\n'],
@@ -546,13 +548,14 @@ code: DISCΓ
     [get_figure_b(), u'!figure\nunit: 米\nvalue: 12300\n'],
     [get_item_a(), u"!item\nname: item a\nprice_brutto: !sum '1.23 EUR'\n"],
     [get_item_a(), u"!item\nname: item a\nprice_brutto: !sum 1.23 EUR"],
-    [get_item_a(sub_items=True), u"""!item
+    [get_item_a(sub_items=True, set_url=True), u"""!item
 name: item a
 price_brutto: !sum '1.23 EUR'
 sub_items:
 - !item
   name: item β
   price_brutto: !sum '20.45 EUR'
+url: http://shop.at/item-a
 """],
     [get_item_a(), u"!item\nname: item a\nprice_brutto: !sum 1.23 €\n"],
     [get_item_b(), u"!item\nname: item β\nprice_brutto: !sum '20.45 EUR'\n"],