def test_registering_event(self): config_values = get_updated_test_config_values(updated_values={'identifier': 'new_event'}) test_configuration = EventConfigurationCreator(configuration_values=config_values).configuration self.test_event_repository.register_event(event_configuration=test_configuration) assert self.test_event_repository.event_already_registered(identifier='new_event') is True retrieved_configuration = self.test_event_repository.get_event_configuration(test_configuration.identifier) assert test_configuration.identifier == retrieved_configuration.identifier assert test_configuration.source_url == retrieved_configuration.source_url
def __convert_row_to_event_configuration(row): configuration_values = { 'identifier': row[0], 'title': row[1], 'start_time': row[2], 'end_time': row[3], 'currency_key': row[4], 'target_amount': row[7], 'source_url': row[8], 'update_delay': row[9] } return EventConfigurationCreator(configuration_values=configuration_values).configuration
def register_or_update_event(): event_register = EventRegister( event_configuration=EventConfigurationCreator( configuration_values=convert_imdict_to_event_config(request.form)).configuration, event_repository=get_event_repository()) already_registered = event_register.event_is_registered() event_register.get_event() update_successful = event_register.event_is_registered() and already_registered return jsonify( { 'registration_successful': event_register.event_is_registered(), 'update_successful': update_successful } )
def test_getting_list_of_events(self): # by default, test_event events = self.test_event_repository.get_events() assert 1 == len(events) assert 'test_event' == events[0].identifier # register an event config_values = get_updated_test_config_values(updated_values={'identifier': 'new_event'}) test_configuration = EventConfigurationCreator(configuration_values=config_values).configuration self.test_event_repository.register_event(event_configuration=test_configuration) # check that the event is in the list now events = self.test_event_repository.get_events() assert 2 == len(events) assert 'new_event' == events[1].identifier # register another event config_values = get_updated_test_config_values(updated_values={'identifier': 'new_event_two'}) test_configuration = EventConfigurationCreator(configuration_values=config_values).configuration self.test_event_repository.register_event(event_configuration=test_configuration) # check both events exist events = self.test_event_repository.get_events() assert 3 == len(events) # order should be newest first assert 'test_event' == events[0].identifier assert 'new_event' == events[1].identifier assert 'new_event_two' == events[2].identifier
def test_updating_event(self): config_values = get_updated_test_config_values(updated_values={'identifier': test_event_identifier, 'end_time': 999}) new_test_configuration = EventConfigurationCreator(configuration_values=config_values).configuration self.test_event_repository.update_event(new_event_configuration=new_test_configuration) retrieved_configuration = self.test_event_repository.get_event_configuration(test_event_identifier) assert retrieved_configuration.end_time == 999
import pytest from charitybot2.configurations.event_configuration import EventConfiguration from charitybot2.creators.event_configuration_creator import EventConfigurationCreator from charitybot2.persistence.event_sqlite_repository import EventSQLiteRepository, EventAlreadyRegisteredException, \ EventNotRegisteredException from helpers.event_config import get_updated_test_config_values test_event_identifier = 'test_event' starting_test_config = get_updated_test_config_values(updated_values={'identifier': test_event_identifier}) starting_test_configuration = EventConfigurationCreator(configuration_values=starting_test_config).configuration non_existent_event_identifier = 'non_existent' non_existent_config_values = get_updated_test_config_values(updated_values={'identifier': non_existent_event_identifier}) non_existent_event_configuration = EventConfigurationCreator(configuration_values=non_existent_config_values).configuration class TestEventSQLiteRepository: test_event_repository = None def setup_method(self): self.test_event_repository = EventSQLiteRepository(debug=True) self.test_event_repository.register_event(event_configuration=starting_test_configuration) def teardown_method(self): self.test_event_repository.close_connection() def test_checking_if_non_existent_event_is_already_registered(self): assert self.test_event_repository.event_already_registered(identifier='registration_check') is False def test_for_existent_event_registration(self): assert self.test_event_repository.event_already_registered(identifier='test_event') is True
def test_retrieving_event_configuration_from_creator(self): event_configuration_creator = EventConfigurationCreator(configuration_values=test_event_config_values) assert isinstance(event_configuration_creator.configuration, EventConfiguration)
def test_passing_incorrect_values_throws_exception(self, configuration_values): with pytest.raises(InvalidEventConfigurationException): EventConfigurationCreator(configuration_values=configuration_values)
import copy import pytest from charitybot2.configurations.event_configuration import EventConfiguration from charitybot2.creators.event_configuration_creator import EventConfigurationCreator, \ InvalidEventConfigurationException, EventConfigurationCreatorFromFile from charitybot2.paths import valid_test_event_config_path from helpers.event_config import test_event_config_values, get_updated_test_config_values test_event_configuration = EventConfiguration(configuration_values=test_event_config_values) test_event_configuration_creator = EventConfigurationCreator(configuration_values=test_event_config_values) class TestEventConfigurationCreator: @pytest.mark.parametrize('configuration_values', [ {}, {'foo': 'bar'}, (), None, 'test', 123, get_updated_test_config_values(updated_values={'currency_key': 'Zimbabwe Dollars'}), get_updated_test_config_values(updated_values={'start_time': 1, 'end_time': 0}), get_updated_test_config_values(updated_values={'start_time': -300, 'end_time': 1}), get_updated_test_config_values(updated_values={'start_time': -20, 'end_time': -10}), get_updated_test_config_values(updated_values={'identifier': 'this cannot have spaces'}), get_updated_test_config_values(updated_values={'identifier': ''}), get_updated_test_config_values(updated_values={'title': ''}), get_updated_test_config_values(updated_values={'start_time': 'never'}), get_updated_test_config_values(updated_values={'end_time': 'heat death of the universe'}), get_updated_test_config_values(updated_values={'source_url': 'htt definitely not a url'})
def get_test_event_configuration(updated_values=None): test_event_configuration_creator = EventConfigurationCreator( configuration_values=get_updated_test_config_values( updated_values=updated_values)) return test_event_configuration_creator.configuration