def test_update_batch_sorting_params_desc_updates_sorting_data(self): self.repo.update_batch( update_params=types.ParaEntity(email='*****@*****.**'), filter_params=types.FilterParams(), sorting_params=types.SortingParams(by=('-id', )), slicing_params=types.SlicingParams(limit=2), ) items_list = self.repo.get_list( sorting_params=types.SortingParams(by=('id', )), ) self.assertEqual(4, len(items_list)) self.assertEqual(1, items_list[0].id) self.assertEqual('jlennon', items_list[0].username) self.assertEqual('*****@*****.**', items_list[0].email) self.assertEqual('John', items_list[0].first_name) self.assertEqual('Lennon', items_list[0].last_name) self.assertEqual(2, items_list[1].id) self.assertEqual('pmccartney', items_list[1].username) self.assertEqual('*****@*****.**', items_list[1].email) self.assertEqual('Paul', items_list[1].first_name) self.assertEqual('McCartney', items_list[1].last_name) self.assertEqual(3, items_list[2].id) self.assertEqual('gharrison', items_list[2].username) self.assertEqual('*****@*****.**', items_list[2].email) # updated self.assertEqual('George', items_list[2].first_name) self.assertEqual('Harrison', items_list[2].last_name) self.assertEqual(4, items_list[3].id) self.assertEqual('rstarkey', items_list[3].username) self.assertEqual('*****@*****.**', items_list[3].email) # updated self.assertEqual('Richard', items_list[3].first_name) self.assertEqual('Starkey', items_list[3].last_name)
def test_update_batch_returns_none(self): result = self.repo.update_batch( update_params=types.ParaEntity(email='*****@*****.**'), filter_params=types.FilterParams(), ) self.assertIsNone(result)
def test_get_item_for_existed_id_returns_entity(self): item = self.repo.get_item(filter_params=types.FilterParams(id=2)) self.assertEqual(2, item.id) self.assertEqual('pmccartney', item.username) self.assertEqual('*****@*****.**', item.email) self.assertEqual('Paul', item.first_name) self.assertEqual('McCartney', item.last_name)
def test_get_item_scoping_params_for_existed_id_returns_para_entity(self): item = self.repo.get_item( filter_params=types.FilterParams(id=2), scoping_params=types.ScopingParams(attrs=('id', 'username')), ) self.assertEqual(2, item.id) self.assertEqual('pmccartney', item.username) self.assertEqual(dataclasses.MISSING, item.email) self.assertEqual(dataclasses.MISSING, item.first_name) self.assertEqual(dataclasses.MISSING, item.last_name)
def test_update_list_filtering_does_not_store_data(self): self.repo.update_list(items_list=[ self.entities.User( id=2, username='******', email='*****@*****.**', first_name='Stuart', last_name='Sutcliffe', ), self.entities.User( id=4, username='******', email='*****@*****.**', first_name='Tommy', last_name='Moore', ), ], filter_params=types.FilterParams( username__in=['jlennon', 'gharrison'])) items_list = self.repo.get_list( sorting_params=types.SortingParams(by=('id', )), ) self.assertEqual(4, len(items_list)) self.assertEqual(1, items_list[0].id) self.assertEqual('jlennon', items_list[0].username) self.assertEqual('*****@*****.**', items_list[0].email) self.assertEqual('John', items_list[0].first_name) self.assertEqual('Lennon', items_list[0].last_name) self.assertEqual(2, items_list[1].id) self.assertEqual('pmccartney', items_list[1].username) self.assertEqual('*****@*****.**', items_list[1].email) self.assertEqual('Paul', items_list[1].first_name) self.assertEqual('McCartney', items_list[1].last_name) self.assertEqual(3, items_list[2].id) self.assertEqual('gharrison', items_list[2].username) self.assertEqual('*****@*****.**', items_list[2].email) self.assertEqual('George', items_list[2].first_name) self.assertEqual('Harrison', items_list[2].last_name) self.assertEqual(4, items_list[3].id) self.assertEqual('rstarkey', items_list[3].username) self.assertEqual('*****@*****.**', items_list[3].email) self.assertEqual('Richard', items_list[3].first_name) self.assertEqual('Starkey', items_list[3].last_name)
def test_get_list_filter_params_returns_filtered_entity_list(self): items_list = self.repo.get_list( filter_params=types.FilterParams(id__in=[2, 4]), ) self.assertEqual(2, len(items_list)) self.assertEqual(2, items_list[0].id) self.assertEqual('pmccartney', items_list[0].username) self.assertEqual('*****@*****.**', items_list[0].email) self.assertEqual('Paul', items_list[0].first_name) self.assertEqual('McCartney', items_list[0].last_name) self.assertEqual(4, items_list[1].id) self.assertEqual('rstarkey', items_list[1].username) self.assertEqual('*****@*****.**', items_list[1].email) self.assertEqual('Richard', items_list[1].first_name) self.assertEqual('Starkey', items_list[1].last_name)
def test_delete_batch_filter_params_removes_filtered_data(self): self.repo.delete_batch( filter_params=types.FilterParams(id__in=[2, 4]), ) items_list = self.repo.get_list( sorting_params=types.SortingParams(by=('id', )), ) self.assertEqual(2, len(items_list)) self.assertEqual(1, items_list[0].id) self.assertEqual('jlennon', items_list[0].username) self.assertEqual('*****@*****.**', items_list[0].email) self.assertEqual('John', items_list[0].first_name) self.assertEqual('Lennon', items_list[0].last_name) self.assertEqual(3, items_list[1].id) self.assertEqual('gharrison', items_list[1].username) self.assertEqual('*****@*****.**', items_list[1].email) self.assertEqual('George', items_list[1].first_name) self.assertEqual('Harrison', items_list[1].last_name)
def test_delete_batch_slicing_params_removes_paginated_data(self): self.repo.delete_batch( filter_params=types.FilterParams(), slicing_params=types.SlicingParams(offset=1, limit=2), ) items_list = self.repo.get_list( sorting_params=types.SortingParams(by=('id', )), ) self.assertEqual(2, len(items_list)) self.assertEqual(1, items_list[0].id) self.assertEqual('jlennon', items_list[0].username) self.assertEqual('*****@*****.**', items_list[0].email) self.assertEqual('John', items_list[0].first_name) self.assertEqual('Lennon', items_list[0].last_name) self.assertEqual(4, items_list[1].id) self.assertEqual('rstarkey', items_list[1].username) self.assertEqual('*****@*****.**', items_list[1].email) self.assertEqual('Richard', items_list[1].first_name) self.assertEqual('Starkey', items_list[1].last_name)
def test_delete_batch_sorting_params_desc_removes_sorting_data(self): self.repo.delete_batch( filter_params=types.FilterParams(), sorting_params=types.SortingParams(by=('-id', )), slicing_params=types.SlicingParams(limit=2), ) items_list = self.repo.get_list( sorting_params=types.SortingParams(by=('id', )), ) self.assertEqual(2, len(items_list)) self.assertEqual(1, items_list[0].id) self.assertEqual('jlennon', items_list[0].username) self.assertEqual('*****@*****.**', items_list[0].email) self.assertEqual('John', items_list[0].first_name) self.assertEqual('Lennon', items_list[0].last_name) self.assertEqual(2, items_list[1].id) self.assertEqual('pmccartney', items_list[1].username) self.assertEqual('*****@*****.**', items_list[1].email) self.assertEqual('Paul', items_list[1].first_name) self.assertEqual('McCartney', items_list[1].last_name)
def test_delete_batch_sorting_params_asc_removes_sorting_data(self): self.repo.delete_batch( filter_params=types.FilterParams(), sorting_params=types.SortingParams(by=('id', )), slicing_params=types.SlicingParams(limit=2), ) items_list = self.repo.get_list( sorting_params=types.SortingParams(by=('id', )), ) self.assertEqual(2, len(items_list)) self.assertEqual(3, items_list[0].id) self.assertEqual('gharrison', items_list[0].username) self.assertEqual('*****@*****.**', items_list[0].email) self.assertEqual('George', items_list[0].first_name) self.assertEqual('Harrison', items_list[0].last_name) self.assertEqual(4, items_list[1].id) self.assertEqual('rstarkey', items_list[1].username) self.assertEqual('*****@*****.**', items_list[1].email) self.assertEqual('Richard', items_list[1].first_name) self.assertEqual('Starkey', items_list[1].last_name)
def test_update_item_partially_filtering_stores_data(self): self.repo.update_item(item=self.repo.para_entity_class( id=2, username='******', email='*****@*****.**', ), filter_params=types.FilterParams( username__in=['jlennon', 'pmccartney'])) items_list = self.repo.get_list( sorting_params=types.SortingParams(by=('id', )), ) self.assertEqual(4, len(items_list)) self.assertEqual(1, items_list[0].id) self.assertEqual('jlennon', items_list[0].username) self.assertEqual('*****@*****.**', items_list[0].email) self.assertEqual('John', items_list[0].first_name) self.assertEqual('Lennon', items_list[0].last_name) self.assertEqual(2, items_list[1].id) # updated partially self.assertEqual('stuart', items_list[1].username) self.assertEqual('*****@*****.**', items_list[1].email) self.assertEqual('Paul', items_list[1].first_name) self.assertEqual('McCartney', items_list[1].last_name) self.assertEqual(3, items_list[2].id) self.assertEqual('gharrison', items_list[2].username) self.assertEqual('*****@*****.**', items_list[2].email) self.assertEqual('George', items_list[2].first_name) self.assertEqual('Harrison', items_list[2].last_name) self.assertEqual(4, items_list[3].id) self.assertEqual('rstarkey', items_list[3].username) self.assertEqual('*****@*****.**', items_list[3].email) self.assertEqual('Richard', items_list[3].first_name) self.assertEqual('Starkey', items_list[3].last_name)
def test_delete_batch_no_params_removes_all_data(self): self.repo.delete_batch(filter_params=types.FilterParams(), ) items_list = self.repo.get_list( sorting_params=types.SortingParams(by=('id', )), ) self.assertEqual(0, len(items_list))
def test_delete_batch_returns_none(self): result = self.repo.delete_batch(filter_params=types.FilterParams(), ) self.assertIsNone(result)
def test_get_item_for_unknown_id_returns_none(self): item = self.repo.get_item(filter_params=types.FilterParams(id=5)) self.assertIsNone(item)