Пример #1
0
	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)
Пример #2
0
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()))
Пример #3
0
	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