Example #1
0
 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
Example #3
0
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
        }
    )
Example #4
0
 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
Example #5
0
 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
Example #6
0
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
Example #7
0
 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)
Example #8
0
 def test_passing_incorrect_values_throws_exception(self, configuration_values):
     with pytest.raises(InvalidEventConfigurationException):
         EventConfigurationCreator(configuration_values=configuration_values)
Example #9
0
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'})
Example #10
0
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