Refactored cpl-query Iterable & Enumerable #129
This commit is contained in:
@@ -6,4 +6,4 @@ if not os.getcwd().endswith('unittests'):
|
||||
|
||||
PLAYGROUND_PATH = os.path.abspath(os.path.join(os.getcwd(), f'{base}test_cli_playground'))
|
||||
TRANSLATION_PATH = os.path.abspath(os.path.join(os.getcwd(), f'{base}unittests_translation'))
|
||||
CLI_PATH = os.path.abspath(os.path.join(os.getcwd(), f'{base}../src/cpl_cli/main.py'))
|
||||
CLI_PATH = os.path.abspath(os.path.join(os.getcwd(), f'../../src/cpl_cli/main.py'))
|
||||
|
@@ -11,7 +11,16 @@ from unittests_query.models import User, Address
|
||||
class EnumerableQueryTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self) -> None:
|
||||
self._tests = Enumerable(User)
|
||||
users = []
|
||||
for i in range(0, 100):
|
||||
users.append(User(
|
||||
String.random_string(string.ascii_letters, 8).lower(),
|
||||
Address(
|
||||
String.random_string(string.ascii_letters, 10).lower(),
|
||||
randint(1, 10)
|
||||
)
|
||||
))
|
||||
|
||||
self._t_user = User(
|
||||
'Test user',
|
||||
Address(
|
||||
@@ -27,22 +36,10 @@ class EnumerableQueryTestCase(unittest.TestCase):
|
||||
)
|
||||
)
|
||||
|
||||
self._generate_test_data()
|
||||
users.append(self._t_user)
|
||||
users.append(self._t_user2)
|
||||
|
||||
def _generate_test_data(self):
|
||||
for i in range(0, 100):
|
||||
user = User(
|
||||
String.random_string(string.ascii_letters, 8).lower(),
|
||||
Address(
|
||||
String.random_string(string.ascii_letters, 10).lower(),
|
||||
randint(1, 10)
|
||||
)
|
||||
)
|
||||
|
||||
self._tests.add(user)
|
||||
|
||||
self._tests.add(self._t_user)
|
||||
self._tests.add(self._t_user2)
|
||||
self._tests = Enumerable(User, users)
|
||||
|
||||
def test_any(self):
|
||||
results = []
|
||||
|
@@ -6,17 +6,9 @@ from cpl_query.enumerable.enumerable import Enumerable
|
||||
class EnumerableTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self) -> None:
|
||||
self._list = Enumerable(int)
|
||||
|
||||
def _clear(self):
|
||||
self._list.clear()
|
||||
self.assertEqual(self._list, [])
|
||||
self._list = Enumerable(int, list(range(1, 4)))
|
||||
|
||||
def test_append(self):
|
||||
self._list.add(1)
|
||||
self._list.add(2)
|
||||
self._list.add(3)
|
||||
|
||||
self.assertEqual(self._list.to_list(), [1, 2, 3])
|
||||
self.assertRaises(Exception, lambda v: self._list.add(v), '3')
|
||||
|
||||
@@ -38,30 +30,7 @@ class EnumerableTestCase(unittest.TestCase):
|
||||
n += 1
|
||||
|
||||
def test_get(self):
|
||||
self._list.add(1)
|
||||
self._list.add(2)
|
||||
self._list.add(3)
|
||||
|
||||
self.assertEqual(self._list.element_at(2), [1, 2, 3][2])
|
||||
|
||||
def test_count(self):
|
||||
self._list.add(1)
|
||||
self._list.add(2)
|
||||
self._list.add(3)
|
||||
|
||||
self.assertEqual(self._list.count(), 3)
|
||||
|
||||
def test_remove(self):
|
||||
old_values = self._list._values
|
||||
self._list.add(1)
|
||||
self.assertNotEqual(old_values, self._list._values)
|
||||
self._list.add(2)
|
||||
self._list.add(3)
|
||||
|
||||
self.assertEqual(self._list.to_list(), [1, 2, 3])
|
||||
self.assertRaises(Exception, lambda v: self._list.add(v), '3')
|
||||
old_values = self._list._values
|
||||
self._list.remove(3)
|
||||
self.assertNotEqual(old_values, self._list._values)
|
||||
self.assertEqual(self._list.to_list(), [1, 2])
|
||||
self.assertRaises(Exception, lambda v: self._list.add(v), '3')
|
||||
|
@@ -113,7 +113,7 @@ class IterableQueryTestCase(unittest.TestCase):
|
||||
|
||||
addresses.append(u.address.nr)
|
||||
|
||||
res2 = self._tests.distinct(lambda x: x.address.nr).select(lambda x: x.address.nr)
|
||||
res2 = self._tests.distinct(lambda x: x.address.nr).select(lambda x: x.address.nr).to_list()
|
||||
self.assertEqual(addresses, res2)
|
||||
|
||||
def test_element_at(self):
|
||||
@@ -199,7 +199,7 @@ class IterableQueryTestCase(unittest.TestCase):
|
||||
groups[v].append(v)
|
||||
elements.append(v)
|
||||
|
||||
r1, r2 = list(groups.values()), elements.group_by()
|
||||
r1, r2 = list(groups.values()), elements.group_by().select(lambda l: l.to_list()).to_list()
|
||||
self.assertEqual(r1, r2)
|
||||
|
||||
def test_for_each(self):
|
||||
|
@@ -4,9 +4,15 @@ class User:
|
||||
self.name = name
|
||||
self.address = address
|
||||
|
||||
def __repr__(self):
|
||||
return f'<{type(self).__name__} {self.name} {self.address}>'
|
||||
|
||||
|
||||
class Address:
|
||||
|
||||
def __init__(self, street, nr):
|
||||
self.street = street
|
||||
self.nr = nr
|
||||
self.nr = nr
|
||||
|
||||
def __repr__(self):
|
||||
return f'<{type(self).__name__} {self.street} {self.nr}>'
|
||||
|
Reference in New Issue
Block a user