コード例 #1
0
ファイル: test_enums.py プロジェクト: fusionapp/fusion-util
 def test_as_pairs(self):
     """
     Representing an enumeration as a list of pairs.
     """
     object1, object2, object3 = object(), object(), object()
     values = object_enum_values_fixture(object1, object2, object3)
     enum = ObjectEnum('doc', values)
     pairs = [(e.get('id', e.value), e.desc) for e in values]
     self.assertThat(enum.as_pairs(), Equals(pairs))
コード例 #2
0
ファイル: test_enums.py プロジェクト: fusionapp/fusion-util
 def test_find(self):
     """
     Finding an enumeration item by extra value gets the first matching item
     or ``None`` if there are no matches.
     """
     object1, object2, object3 = object(), object(), object()
     values = object_enum_values_fixture(object1, object2, object3)
     enum = ObjectEnum('doc', values)
     self.assertThat(enum.find(quux=u'hello'), Is(values[0]))
     self.assertThat(enum.find(frob=u'world'), Is(values[0]))
     self.assertThat(enum.find(quux=u'goodbye'), Is(values[1]))
     self.assertThat(enum.find(haha=u'nothanks'), Is(None))
コード例 #3
0
ファイル: test_enums.py プロジェクト: fusionapp/fusion-util
 def test_get(self):
     """
     Getting an enumeration item by value returns the relevant `EnumItem`
     instance or raises `InvalidEnumItem` in the case where no item is
     represented by the given value.
     """
     object1, object2, object3 = object(), object(), object()
     values = object_enum_values_fixture(object1, object2, object3)
     enum = ObjectEnum('doc', values)
     self.assertThat(
         values,
         Equals([enum.get(e.value) for e in values]))
     self.assertThat(
         lambda: enum.get(u'DOES_NOT_EXIST'),
         raises(InvalidEnumItem))
コード例 #4
0
ファイル: test_enums.py プロジェクト: fusionapp/fusion-util
 def test_find_all(self):
     """
     Finding all enumeration items by extra value gets an iterable of all
     matching items. Passing fewer or more than one query raises
     `ValueError`.
     """
     object1, object2, object3 = object(), object(), object()
     values = object_enum_values_fixture(object1, object2, object3)
     enum = ObjectEnum('doc', values)
     results = list(enum.find_all(frob=u'world'))
     self.assertThat(
         results,
         Equals([values[0], values[2]]))
     self.assertThat(
         enum.find_all(asdf=u'qwer'),
         After(list, Equals([])))
コード例 #5
0
ファイル: test_enums.py プロジェクト: fusionapp/fusion-util
 def test_extra(self):
     """
     Extra parameters are retrieved by `EnumItem.get` if they exist
     otherwise a default value is returned instead.
     """
     object1, object2, object3 = object(), object(), object()
     values = object_enum_values_fixture(object1, object2, object3)
     enum = ObjectEnum('doc', values)
     self.assertThat(
         enum.get(object1).get('quux'),
         Equals(u'hello'))
     self.assertThat(
         enum.get(object1).get('frob'),
         Equals(u'world'))
     self.assertThat(
         enum.get(object2).get('quux'),
         Equals(u'goodbye'))
     self.assertThat(
         enum.get(object2).get('boop'),
         Is(None))
     self.assertThat(
         enum.get(object2).get('beep', 42),
         Equals(42))
コード例 #6
0
ファイル: test_enums.py プロジェクト: fusionapp/fusion-util
 def test_get_extra(self):
     """
     Getting an enumeration item extra value by enumeration value returns
     the extra's value or a default value, defaulting to ``None``.
     """
     object1, object2, object3 = object(), object(), object()
     values = object_enum_values_fixture(object1, object2, object3)
     enum = ObjectEnum('doc', values)
     self.assertThat(
         enum.extra(object1, 'quux'),
         Equals(u'hello'))
     self.assertThat(
         enum.extra(object1, 'frob'),
         Equals(u'world'))
     self.assertThat(
         enum.extra(object2, 'quux'),
         Equals(u'goodbye'))
     self.assertThat(
         enum.extra(u'bar', 'nope'),
         Is(None))
     self.assertThat(
         enum.extra(u'bar', 'nope', u''),
         Equals(u''))