Skip to content

Commit

Permalink
Remove deprecated required abstract factory class.
Browse files Browse the repository at this point in the history
This functionality is being replaced with methods in the
`validate` class.
  • Loading branch information
shawnbrown committed Feb 4, 2019
1 parent aa0be7a commit ce85153
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 56 deletions.
1 change: 0 additions & 1 deletion datatest/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
from .difference import * # Difference classes.
from .allowance import * # Allowance context mangers.
from ._required import group_requirement
from ._required import required
from ._predicate import Predicate

# Unittest-style API
Expand Down
35 changes: 0 additions & 35 deletions datatest/_required.py
Original file line number Diff line number Diff line change
Expand Up @@ -887,38 +887,3 @@ def check_group(self, group):
differences = (Extra(element) for element in extras)
description = 'may contain only elements of given superset'
return differences, description


class required(abc.ABC):
""":class:`required` is an abstract factory class that returns
requirement objects. It contains several factory methods that can
be called directly to instantiate specific requirement types.
"""
def __new__(cls, *args, **kwds):
msg = ("Can't instantiate abstract class required, use factory "
"methods like required.unique(), required.subset(), etc.")
raise TypeError(msg)

@classmethod
def unique(cls):
"""Requires that elements are unique.
.. code-block:: python
:emphasize-lines: 6
from datatest import validate
from datatest import required
data = [1, 2, 3, ...]
validate(data, required.unique())
"""
return RequiredUnique()

@classmethod
def subset(cls, set):
pass

@classmethod
def superset(cls, set):
pass
20 changes: 0 additions & 20 deletions tests/test_required.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
from datatest._required import RequiredUnique
from datatest._required import RequiredSubset
from datatest._required import RequiredSuperset
from datatest._required import required
from datatest.difference import NOTFOUND


Expand Down Expand Up @@ -1669,22 +1668,3 @@ def test_single_element_handling(self):
diff, desc = requirement((3, 4)) # <- Tuple is single element.
diff = sorted(diff, key=lambda x: x.args)
self.assertEqual(diff, [Extra((3, 4))])


class TestRequiredFactory(unittest.TestCase):
def test_bad_init(self):
"""The `required` factory should not be instantiated directly."""
with self.assertRaises(TypeError):
required('foo')

def test_unique(self):
requirement = required.unique()
self.assertIsInstance(requirement, RequiredUnique)

@unittest.skip('not yet implemented')
def test_subset(self):
pass

@unittest.skip('not yet implemented')
def test_superset(self):
pass

0 comments on commit ce85153

Please sign in to comment.