def setUp(self): self.ds = donationswap.Donationswap('test-config.json') self.captcha = self.ds._captcha = MockCaptcha() self.currency = self.ds._currency = MockCurrency() self.geoip = self.ds._geoip = MockGeoIpCountry() self.mail = self.ds._mail = MockMail() with self.ds._database.connect() as db: currency = db.read_one(''' SELECT min(id) AS id FROM currencies; ''')['id'] db.write(''' INSERT INTO charity_categories (id, name) VALUES (1, 'category1'), (2, 'category2'); ''') db.write(''' INSERT INTO charities (id, name, category_id) VALUES (1, 'charity1', 1), (2, 'charity2', 2); ''') db.write(''' INSERT INTO countries (id, name, iso_name, currency_id, min_donation_amount, min_donation_currency_id, gift_aid) VALUES (1, 'country1', 'c1', %(currency)s, 0, %(currency)s, 100), (2, 'country1', 'c2', %(currency)s, 0, %(currency)s, 100); ''', currency=currency) entities.load(db)
def check_entities(): cfg = config.Config(CONFIG_FILENAME) dat = database.Database(cfg.db_connection_string) with dat.connect() as db: entities.load(db) print('Charity Categories: %s' % len(entities.CharityCategory.get_all())) print('Charities: %s' % len(entities.Charity.get_all())) print('Countries: %s' % len(entities.Country.get_all())) print('Charities In Countries: %s' % len(entities.CharityInCountry.get_all())) print('Offers: %s' % len(entities.Offer.get_all())) print('Unmatched offers: %s' % len(entities.Offer.get_unmatched_offers(db))) print('Matches: %s' % len(entities.Match.get_all()))
def __init__(self, config_path): self._config = config.Config(config_path) self._database = database.Database(self._config.db_connection_string) self._captcha = captcha.Captcha(self._config.captcha_secret) self._currency = currency.Currency(self._config.currency_cache, self._config.fixer_apikey) self._geoip = geoip.GeoIpCountry(self._config.geoip_datafile) self._mail = mail.Mail(self._config.email_user, self._config.email_password, self._config.email_smtp, self._config.email_from, self._config.email_sender_name) with self._database.connect() as db: entities.load(db) self._ip_address = None self.automation_mode = False