class TestSave: def setup_method(self): self.repository = CandidateRepository() @pytest.mark.parametrize('candidate', [Candidate(user)]) def test_succeeds_when_candidate_has_no_id(self, candidate): saved_candidate = self.repository.save(candidate) assert get_public_vars(self.repository.candidates[ saved_candidate.id]) == get_public_vars(candidate) @pytest.mark.parametrize( 'candidate, updated_candidate', [(Candidate(user), Candidate(user, description='updated'))]) def test_update_succeeds_when_candidate_has_id(self, candidate, updated_candidate): saved_candidate = self.repository.save(candidate) candidate_id = saved_candidate.id updated_candidate.id = candidate_id self.repository.save(updated_candidate) assert get_public_vars( self.repository.candidates[candidate_id]) == get_public_vars( updated_candidate) @pytest.mark.parametrize('candidate, event_item_id', [(Candidate(user, id=1), 1)]) def test_save_succeeds_when_given_event_item_id(self, candidate, event_item_id): self.repository.save(candidate, event_item_id) assert set(self.repository.event_item_id_to_candidate_map[event_item_id] ) == set([candidate]) # noqa E124
class TestDelete: def setup_method(self): self.repository = CandidateRepository() self.repository.candidates[1] = Candidate(user, id=1) @pytest.fixture() def regist_candidate_to_event_item_id_map(self): event_item_id = 1 candidate = Candidate(user, id=1) self.repository.event_item_id_to_candidate_map[event_item_id] = [ candidate ] @pytest.mark.parametrize('candidate', [Candidate(user, id=1)]) def test_succeeds_when_target_candidate_exists(self, candidate): self.repository.delete(candidate) @pytest.mark.parametrize('candidate, event_item_id', [(Candidate(user, id=1), 1)]) def test_succeeds_when_target_candidate_registerd_in_event_item_id_map( self, candidate, event_item_id, regist_candidate_to_event_item_id_map): self.repository.delete(candidate) for registed_candidates \ in self.repository.event_item_id_to_candidate_map.values(): for registed_candidate in registed_candidates: assert candidate.id == registed_candidate.id @pytest.mark.parametrize('candidate', [Candidate(user, id=100)]) def test_return_value_error_when_target_candidate_does_not_exist( self, candidate): with pytest.raises(ValueError): assert self.repository.delete(candidate) @pytest.mark.parametrize('candidate', [Candidate(user, id=None)]) def test_return_value_error_when_given_candidate_id_is_none( self, candidate): with pytest.raises(ValueError): assert self.repository.delete(candidate)
def test_raise_type_error_with_invalid_args(self, invalid_args): with pytest.raises(TypeError): Candidate(**invalid_args)
def test_succeeds_initialization_with_valid_args(self, valid_args, expected): candidate = Candidate(**valid_args) assert get_public_vars(candidate) == expected
import pytest from savoten.domain import Candidate, EventItem, User from tests.util import get_public_vars user = User('user_name', '*****@*****.**', 1) candidate = Candidate(user) class TestInit: @pytest.mark.parametrize('valid_args, expected', [({ 'name': 'name', 'candidates': [candidate], 'description': 'description', 'seats': 2, 'max_choice': 3, 'min_choice': 4, 'id': 5 }, { 'name': 'name', 'candidates': [candidate], 'description': 'description', 'seats': 2, 'max_choice': 3, 'min_choice': 4, 'id': 5 }), ({ 'name': 'name', 'candidates': [candidate]
import pytest from savoten.domain import Candidate, EventItem, User from savoten.repository.memory import EventItemRepository from tests.util import get_public_vars user_args = { 'name': 'test_user', 'email': '*****@*****.**', 'permission': 100 } user = User(**user_args) candidate_args = {'user': user} candidate = Candidate(**candidate_args) class TestSave: def setup_method(self): self.repository = EventItemRepository() @pytest.mark.parametrize('event_item', [EventItem('test_name', [candidate])]) def test_succeeds_when_event_item_has_no_id(self, event_item): saved_event_item = self.repository.save(event_item) assert get_public_vars(self.repository.event_items[ saved_event_item.id]) == get_public_vars(event_item) @pytest.mark.parametrize('event_item, updated_event_item', [(EventItem( 'test_name', [candidate]), EventItem('updated', [candidate]))]) def test_update_succeeds_when_event_item_has_same_id( self, event_item, updated_event_item):
def setup_class(cls): cls.repository = CandidateRepository() cls.repository.candidates[1] = Candidate(user, id=1)
def regist_candidate_to_event_item_id_map(self): event_item_id = 1 candidate = Candidate(user, id=1) self.repository.event_item_id_to_candidate_map[event_item_id] = [ candidate ]
def setup_method(self): self.repository = CandidateRepository() self.repository.candidates[1] = Candidate(user, id=1)
def setup_class(cls): cls.repository = CandidateRepository() cls.test_candidates = [Candidate(user, id=i) for i in range(1, 5)] for candidate in cls.test_candidates: cls.repository.candidates[candidate.id] = candidate
def setup_class(cls): cls.repository = CandidateRepository() cls.test_candidates = [Candidate(user, id=i) for i in range(1, 5)] event_item_id = 1 cls.repository.event_item_id_to_candidate_map[ event_item_id] = cls.test_candidates