def exists(email, member_id=None): if member_id: return Entity.select().where((fn.Lower(Entity.email) == email.lower()) & Entity.is_member, (Entity.id != member_id)).count() == 1 else: return Entity.select().where((fn.Lower(Entity.email) == email.lower()) & Entity.is_member).count() == 1
def test_create(self): member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, self.test_member.agreement_date) member = Entity.get(Entity.id == member_id) self.assertNotEqual(member.id, self.test_member.id) self.assertEqual(member.name, self.test_member.name) self.assertEqual(member.email, self.test_member.email) self.assertEqual(member.phone, self.test_member.phone) self.assertEqual(member.joined_date, self.test_member.joined_date) self.assertEqual(member.agreement_date, self.test_member.agreement_date) member.delete_instance() member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, None, self.test_member.agreement_date) member = Entity.get(Entity.id == member_id) self.assertEqual(member.joined_date, date.today()) member.delete_instance() member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, None) member = Entity.get(Entity.id == member_id) self.assertEqual(member.agreement_date, date.today()) member.delete_instance()
def setUp(self): self.test_entity = Entity() self.test_entity.is_member = False self.test_entity.name = "Jane Smith" self.test_entity.email = "*****@*****.**" self.test_entity.phone = "+61 (02) 1234 5678" self.test_entity.is_keyholder = False self.test_entity.save()
def setUp(self): self.test_member = Entity() self.test_member.is_member = True self.test_member.name = "Jane Smith" self.test_member.email = "*****@*****.**" self.test_member.phone = "+61 (02) 1234 5678" self.test_member.joined_date = date.today() - timedelta(days=1) self.test_member.agreement_date = date.today() self.test_member.is_keyholder = False self.test_member.save() self.joined_date = "2014-12-24" self.agreement_date = "2014-12-25"
def create(name, email, phone): entity = Entity() entity.is_member = False entity.name = name entity.email = email entity.phone = phone entity.is_keyholder = False entity.save() return entity.id
def member_once_only_email(): ''' Finds all expired members and sends once only email asking them to renew. Used for first run, before we setup regular emails as people expire. ''' members = Entity.select().where(Entity.is_member) do_not_email = app.config['DO_NOT_EMAIL'] # flash('do_not_email= ' + ', '.join(do_not_email)) emails_sent = 0 for member in members: if member.active_member(): None else: if member.name in do_not_email: flash("Not emailing: " + member.name) else: if member.reminder_date: flash("Not emailing: " + member.name + " reminder_date set " + member.reminder_date.strftime('%m/%d/%Y')) else: # only send this email to people who have not joined under new system (2014) if member.agreement_date.year < 2014: mailer.send( member.email, "MakeHackVoid Membership Renewal - once only reminder email", render_template("emails/once_only_renewal.txt", name=member.name, email=member.email)) # set the reminder date in database so can test when sending another email member.reminder_date = date.today() member.save() emails_sent += 1 flash("Sent " + str(emails_sent) + " once only emails.") return redirect(url_for('.index'))
def setUp(self): self.test_entity = Entity() self.test_entity.is_member = False self.test_entity.name = "Jane Smith" self.test_entity.email = "*****@*****.**" self.test_entity.phone = "+61 (02) 1234 5678" self.test_entity.save()
def member_renewal_email(): ''' Finds all expired members who have been 'new style' members - that is they have agreement_date from 2014 onwards, and have not yet been sent a reminder - reminders_date tests will probably want to be a bit more complex at some stage Sends reminder email asking them to renew. ''' members = Entity.select().where(Entity.is_member) do_not_email = app.config['DO_NOT_EMAIL'] # flash('do_not_email= ' + ', '.join(do_not_email)) emails_sent = 0 for member in members: if member.active_member(): None else: if member.name not in do_not_email: if member.agreement_date.year >= 2014 and not member.reminder_date: mailer.send( member.email, "MakeHackVoid membership renewal reminder", render_template("emails/renewal_reminder.txt", name=member.name, email=member.email, agreement_date=member.agreement_date)) # set the reminder date in database so can test when sending another email member.reminder_date = date.today() member.save() emails_sent += 1 flash("Sent " + str(emails_sent) + " once only emails.") return redirect(url_for('.index'))
def authenticate_token(token): try: member = Entity.get(Entity.token == token) if (member.token_expiry > datetime.now()): return member except Exception: pass return None # no such token for member, or token is expired
def authenticate_token(token): try: member = Entity.get(Entity.token == token) if (member.token_expiry > datetime.now()): return member except: pass return None # no such token for member, or token is expired
def create(name, email, phone): member = Entity() member.is_member = True member.joined_date = date.today() member.name = name member.email = email member.phone = phone member.agreement_date = date.today() return member.save()
def update(name, email, phone, member=None): if member is None: member = Entity.get(Entity.email == email) member.name = name member.email = email member.phone = phone member.agreement_date = date.today() return member.save()
def test_update(self): new_name = "Joe Flanders" new_email = "*****@*****.**" new_phone = "(04) 9876 5432" entities.update(self.test_entity.id, new_name, new_email, new_phone) entity = Entity.get(Entity.id == self.test_entity.id) self.assertEqual(entity.name, new_name) self.assertEqual(entity.email, new_email) self.assertEqual(entity.phone, new_phone)
def update(member_id, name, email, phone, joined_date=None, agreement_date=None): member = Entity.get((Entity.id == member_id) & Entity.is_member) member.name = name member.email = email member.phone = phone member.joined_date = joined_date member.agreement_date = agreement_date return member.save()
def setUp(self): self.type = 2 self.email = "*****@*****.**" self.entity = Entity.get(Entity.id == entities.create("Jane Doe", self.email, "")) self.amount = 1234 self.entity = self.entity self.method = 0 self.is_donation = True self.notes = "For services rendered" self.reference = "yx92s3"
def create(name, email, phone, joined_date=None, agreement_date=None): if joined_date is None: joined_date = date.today() if agreement_date is None: agreement_date = date.today() member = Entity() member.is_member = True member.name = name member.email = email member.phone = phone member.joined_date = joined_date member.agreement_date = agreement_date member.save() return member.id
def validate(amount, email, method, type, notes, reference): errors = [] if not amount or not re.match("^[0-9]*(\.[0-9]{2}|\.[0-9]|)$", amount): errors.append("Sorry, you need to provide a valid amount.") if not re.match("[^@\s]+@[^@\s]+", email): errors.append("Sorry, you need to provide a valid email address.") else: # Valid email, so check that they're a member try: Entity.get(Entity.email == email) except DoesNotExist: errors.append("Sorry, you need to provide a valid member's email address.") if not type or not type.isdigit() or int(type) > 2: errors.append("Sorry, you need to provide a valid payment type.") if not method or not method.isdigit() or int(method) > 2: errors.append("Sorry, you need to provide a valid payment method.") if not reference: errors.append("Sorry, you need to provide a reference.") return errors
def test_create(self): entity_id = entities.create(self.test_entity.name, self.test_entity.email, self.test_entity.phone) entity = Entity.get(Entity.id == entity_id) self.assertNotEqual(entity.id, self.test_entity.id) self.assertEqual(entity.name, self.test_entity.name) self.assertEqual(entity.email, self.test_entity.email) self.assertEqual(entity.phone, self.test_entity.phone) entity.delete_instance()
def setUp(self): self.test_member = Entity() self.test_member.is_member = True self.test_member.name = "Jane Smith" self.test_member.email = "*****@*****.**" self.test_member.phone = "+61 (02) 1234 5678" self.test_member.joined_date = date.today()-timedelta(days=1) self.test_member.agreement_date = date.today() self.test_member.save() self.joined_date = "2014-12-24" self.agreement_date = "2014-12-25"
def test_active_member(self): self.assertTrue(self.test_member.active_member(), 'member agreement is current') new_agreement_date = date.today() - timedelta(days=500) members.update(self.test_member.id, self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, new_agreement_date, self.test_member.is_keyholder) member = Entity.get(Entity.id == self.test_member.id) self.assertFalse(member.active_member(), 'member agreement not current')
def create(amount, email, method, type, notes, reference): # Create payment payment = Payment() payment.time = datetime.now() payment.entity = Entity.get(Entity.email == email) payment.amount = amount payment.source = method payment.is_donation = type != 0 payment.notes = notes if method == 0: # Bank transfer payment.bank_reference = reference payment.pending = True payment.save()
def test_active_member(self): self.assertTrue(self.test_member.active_member(), 'member agreement is current') new_agreement_date = date.today()-timedelta(days=500) members.update(self.test_member.id, self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, new_agreement_date, self.test_member.is_keyholder) member = Entity.get(Entity.id == self.test_member.id) self.assertFalse(member.active_member(), 'member agreement not current')
def test_create(self): member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, self.test_member.agreement_date, self.test_member.is_keyholder) member = Entity.get(Entity.id == member_id) self.assertNotEqual(member.id, self.test_member.id) self.assertEqual(member.name, self.test_member.name) self.assertEqual(member.email, self.test_member.email) self.assertEqual(member.phone, self.test_member.phone) self.assertEqual(member.joined_date, self.test_member.joined_date) self.assertEqual(member.agreement_date, self.test_member.agreement_date) self.assertEqual(member.is_keyholder, self.test_member.is_keyholder) member.delete_instance() member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, None, self.test_member.agreement_date, self.test_member.is_keyholder) member = Entity.get(Entity.id == member_id) self.assertEqual(member.joined_date, date.today()) member.delete_instance() member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, None, self.test_member.is_keyholder) member = Entity.get(Entity.id == member_id) self.assertEqual(member.agreement_date, date.today()) member.delete_instance()
def update(member_id, name, email, phone, joined_date=None, agreement_date=None, is_keyholder=False): member = Entity.get((Entity.id == member_id) & Entity.is_member) member.name = name member.email = email member.phone = phone if joined_date is not None: member.joined_date = joined_date if agreement_date is not None: member.agreement_date = agreement_date if is_keyholder is None: member.is_keyholder = False else: member.is_keyholder = is_keyholder return member.save()
def update(member_id, name, email, phone, joined_date=None, agreement_date=None, is_keyholder=False): member = Entity.get((Entity.id == member_id) & Entity.is_member) member.name = name member.email = email.lower() member.phone = phone if joined_date is not None: member.joined_date = joined_date if agreement_date is not None: member.agreement_date = agreement_date if is_keyholder is None: member.is_keyholder = False else: member.is_keyholder = is_keyholder return member.save()
def test_update(self): new_name = "Joe Flanders" new_email = "*****@*****.**" new_phone = "(04) 9876 5432" new_joined_date = date.today() - timedelta(days=7) new_agreement_date = date.today() - timedelta(days=6) new_is_keyholder = True members.update(self.test_member.id, new_name, new_email, new_phone, new_joined_date, new_agreement_date, new_is_keyholder) member = Entity.get(Entity.id == self.test_member.id) self.assertEqual(member.name, new_name) self.assertEqual(member.email, new_email) self.assertEqual(member.phone, new_phone) self.assertEqual(member.joined_date, new_joined_date) self.assertEqual(member.agreement_date, new_agreement_date) self.assertEqual(member.is_keyholder, new_is_keyholder)
def test_update(self): new_name = "Joe Flanders" new_email = "*****@*****.**" new_phone = "(04) 9876 5432" new_joined_date = date.today()-timedelta(days=7) new_agreement_date = date.today()-timedelta(days=6) members.update(self.test_member.id, new_name, new_email, new_phone, new_joined_date, new_agreement_date) member = Entity.get(Entity.id == self.test_member.id) self.assertEqual(member.name, new_name) self.assertEqual(member.email, new_email) self.assertEqual(member.phone, new_phone) self.assertEqual(member.joined_date, new_joined_date) self.assertEqual(member.agreement_date, new_agreement_date)
def create_token(email): member = Entity.get((Entity.email == email) & Entity.is_member) member.token = __generate_token() member.token_expiry = datetime.now() + timedelta(hours=24) member.save() return member.token
def get(member_id): try: return Entity.get((Entity.id == member_id) & Entity.is_member) except DoesNotExist: return None
def exists(email, member_id=None): if member_id: return Entity.select().where((Entity.email == email) & Entity.is_member, (Entity.id != member_id)).count() == 1 else: return Entity.select().where((Entity.email == email) & Entity.is_member).count() == 1
def get(entity_id): try: return Entity.get(Entity.id == entity_id) except DoesNotExist: return None
def create_token(email): member = Entity.get((fn.Lower(Entity.email) == email.lower()) & Entity.is_member) member.token = __generate_token() member.token_expiry = datetime.now() + timedelta(hours=24) member.save() return member.token
class MembersTestCases(unittest.TestCase): def setUp(self): self.test_member = Entity() self.test_member.is_member = True self.test_member.name = "Jane Smith" self.test_member.email = "*****@*****.**" self.test_member.phone = "+61 (02) 1234 5678" self.test_member.joined_date = date.today()-timedelta(days=1) self.test_member.agreement_date = date.today() self.test_member.save() self.joined_date = "2014-12-24" self.agreement_date = "2014-12-25" def tearDown(self): self.test_member.delete_instance() def test_get(self): member = members.get(self.test_member.id) self.assertEqual(member, self.test_member) def test_get_bad_id(self): member = members.get(12345) self.assertIsNone(member) def test_validate(self): errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, self.joined_date, self.agreement_date) self.assertEqual(len(errors), 0) def test_validate_name(self): errors = members.validate("", self.test_member.email, self.test_member.phone, self.joined_date, self.agreement_date) self.assertEqual(len(errors), 1) def test_validate_email(self): errors = members.validate(self.test_member.name, "", self.test_member.phone, self.joined_date, self.agreement_date) self.assertEqual(len(errors), 1) errors = members.validate(self.test_member.name, "not-an-email.com", self.test_member.phone, self.joined_date, self.agreement_date) self.assertEqual(len(errors), 1) errors = members.validate(self.test_member.name, "not-an-email@", self.test_member.phone, self.joined_date, self.agreement_date) self.assertEqual(len(errors), 1) def test_validate_phone(self): errors = members.validate(self.test_member.name, self.test_member.email, "", self.joined_date, self.agreement_date) self.assertEqual(len(errors), 0) def test_validate_joined_date(self): errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, "2014-12-25", self.agreement_date) print(errors) self.assertEqual(len(errors), 0) errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, "The 25th of December, Stardate 21020", self.agreement_date) self.assertEqual(len(errors), 1) def test_validate_agreement_date(self): errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, self.joined_date, "2014-12-25") self.assertEqual(len(errors), 0) errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, "The 25th of December, Stardate 21020", self.agreement_date) self.assertEqual(len(errors), 1) def test_create(self): member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, self.test_member.agreement_date) member = Entity.get(Entity.id == member_id) self.assertNotEqual(member.id, self.test_member.id) self.assertEqual(member.name, self.test_member.name) self.assertEqual(member.email, self.test_member.email) self.assertEqual(member.phone, self.test_member.phone) self.assertEqual(member.joined_date, self.test_member.joined_date) self.assertEqual(member.agreement_date, self.test_member.agreement_date) member.delete_instance() member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, None, self.test_member.agreement_date) member = Entity.get(Entity.id == member_id) self.assertEqual(member.joined_date, date.today()) member.delete_instance() member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, None) member = Entity.get(Entity.id == member_id) self.assertEqual(member.agreement_date, date.today()) member.delete_instance() def test_update(self): new_name = "Joe Flanders" new_email = "*****@*****.**" new_phone = "(04) 9876 5432" new_joined_date = date.today()-timedelta(days=7) new_agreement_date = date.today()-timedelta(days=6) members.update(self.test_member.id, new_name, new_email, new_phone, new_joined_date, new_agreement_date) member = Entity.get(Entity.id == self.test_member.id) self.assertEqual(member.name, new_name) self.assertEqual(member.email, new_email) self.assertEqual(member.phone, new_phone) self.assertEqual(member.joined_date, new_joined_date) self.assertEqual(member.agreement_date, new_agreement_date)
class MembersTestCases(unittest.TestCase): def setUp(self): self.test_member = Entity() self.test_member.is_member = True self.test_member.name = "Jane Smith" self.test_member.email = "*****@*****.**" self.test_member.phone = "+61 (02) 1234 5678" self.test_member.joined_date = date.today() - timedelta(days=1) self.test_member.agreement_date = date.today() self.test_member.is_keyholder = False self.test_member.save() self.joined_date = "2014-12-24" self.agreement_date = "2014-12-25" def tearDown(self): self.test_member.delete_instance() def test_get(self): member = members.get(self.test_member.id) self.assertEqual(member, self.test_member) def test_get_bad_id(self): member = members.get(12345) self.assertIsNone(member) def test_validate(self): errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 0) def test_validate_name(self): errors = members.validate("", self.test_member.email, self.test_member.phone, self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) def test_validate_email(self): errors = members.validate(self.test_member.name, "", self.test_member.phone, self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) errors = members.validate(self.test_member.name, "not-an-email.com", self.test_member.phone, self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) errors = members.validate(self.test_member.name, "not-an-email@", self.test_member.phone, self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) def test_validate_phone(self): errors = members.validate(self.test_member.name, self.test_member.email, "", self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 0) def test_validate_joined_date(self): errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, "2014-12-25", self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 0) errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, "The 25th of December, Stardate 21020", self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) def test_validate_agreement_date(self): errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, self.joined_date, "2014-12-25", self.test_member.is_keyholder) self.assertEqual(len(errors), 0) errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, "The 25th of December, Stardate 21020", self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) def test_active_member(self): self.assertTrue(self.test_member.active_member(), 'member agreement is current') new_agreement_date = date.today() - timedelta(days=500) members.update(self.test_member.id, self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, new_agreement_date, self.test_member.is_keyholder) member = Entity.get(Entity.id == self.test_member.id) self.assertFalse(member.active_member(), 'member agreement not current') def test_create(self): member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, self.test_member.agreement_date, self.test_member.is_keyholder) member = Entity.get(Entity.id == member_id) self.assertNotEqual(member.id, self.test_member.id) self.assertEqual(member.name, self.test_member.name) self.assertEqual(member.email, self.test_member.email) self.assertEqual(member.phone, self.test_member.phone) self.assertEqual(member.joined_date, self.test_member.joined_date) self.assertEqual(member.agreement_date, self.test_member.agreement_date) self.assertEqual(member.is_keyholder, self.test_member.is_keyholder) member.delete_instance() member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, None, self.test_member.agreement_date, self.test_member.is_keyholder) member = Entity.get(Entity.id == member_id) self.assertEqual(member.joined_date, date.today()) member.delete_instance() member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, None, self.test_member.is_keyholder) member = Entity.get(Entity.id == member_id) self.assertEqual(member.agreement_date, date.today()) member.delete_instance() def test_update(self): new_name = "Joe Flanders" new_email = "*****@*****.**" new_phone = "(04) 9876 5432" new_joined_date = date.today() - timedelta(days=7) new_agreement_date = date.today() - timedelta(days=6) new_is_keyholder = True members.update(self.test_member.id, new_name, new_email, new_phone, new_joined_date, new_agreement_date, new_is_keyholder) member = Entity.get(Entity.id == self.test_member.id) self.assertEqual(member.name, new_name) self.assertEqual(member.email, new_email) self.assertEqual(member.phone, new_phone) self.assertEqual(member.joined_date, new_joined_date) self.assertEqual(member.agreement_date, new_agreement_date) self.assertEqual(member.is_keyholder, new_is_keyholder) def test_create_token(self): token = members.create_token(self.test_member.email) member = members.get(self.test_member.id) self.assertEqual(token, member.token) def test_authenticate_token(self): token = members.create_token(self.test_member.email) valid = members.authenticate_token(token) self.assertTrue(valid) def test_authenticate_token_expiry(self): with freeze_time("2012-01-14 10:00:00"): token = members.create_token(self.test_member.email) with freeze_time("2012-01-15 09:59:59"): member = members.authenticate_token(token) self.assertEqual(member, self.test_member) with freeze_time("2012-01-15 10:00:01"): member = members.authenticate_token(token) self.assertEqual(member, None) def test_invalidate_token(self): members.create_token(self.test_member.email) members.invalidate_token(self.test_member.id) member = members.get(self.test_member.id) self.assertEqual(member.token, None) self.assertEqual(member.token_expiry, None)
class EntitiesTestCases(unittest.TestCase): def setUp(self): self.test_entity = Entity() self.test_entity.is_member = False self.test_entity.name = "Jane Smith" self.test_entity.email = "*****@*****.**" self.test_entity.phone = "+61 (02) 1234 5678" self.test_entity.is_keyholder = False self.test_entity.save() def tearDown(self): self.test_entity.delete_instance() def test_get(self): entity = entities.get(self.test_entity.id) self.assertEqual(entity, self.test_entity) def test_get_bad_id(self): entity = entities.get(12345) self.assertIsNone(entity) def test_validate(self): errors = entities.validate(self.test_entity.name, self.test_entity.email, self.test_entity.phone) self.assertEqual(len(errors), 0) def test_validate_name(self): errors = entities.validate("", self.test_entity.email, self.test_entity.phone) self.assertEqual(len(errors), 1) def test_validate_email(self): errors = entities.validate(self.test_entity.name, "", self.test_entity.phone) self.assertEqual(len(errors), 0) errors = entities.validate(self.test_entity.name, "not-an-email.com", self.test_entity.phone) self.assertEqual(len(errors), 1) errors = entities.validate(self.test_entity.name, "not-an-email@", self.test_entity.phone) self.assertEqual(len(errors), 1) def test_validate_phone(self): errors = entities.validate(self.test_entity.name, self.test_entity.email, "") self.assertEqual(len(errors), 0) def test_create(self): entity_id = entities.create(self.test_entity.name, self.test_entity.email, self.test_entity.phone) entity = Entity.get(Entity.id == entity_id) self.assertNotEqual(entity.id, self.test_entity.id) self.assertEqual(entity.name, self.test_entity.name) self.assertEqual(entity.email, self.test_entity.email) self.assertEqual(entity.phone, self.test_entity.phone) entity.delete_instance() def test_update(self): new_name = "Joe Flanders" new_email = "*****@*****.**" new_phone = "(04) 9876 5432" entities.update(self.test_entity.id, new_name, new_email, new_phone) entity = Entity.get(Entity.id == self.test_entity.id) self.assertEqual(entity.name, new_name) self.assertEqual(entity.email, new_email) self.assertEqual(entity.phone, new_phone)
database = SqliteDatabase(app.config['DATABASE'], threadlocals=True) from mhvdb2.admin import admin # noqa app.register_blueprint(admin, url_prefix='/admin') @app.before_request def before_request(): g.db = database g.db.connect() @app.after_request def after_request(response): g.db.close() return response import mhvdb2.routes # noqa from mhvdb2.models import Entity, User # noqa database.connect() if not Entity.table_exists(): Entity.create_table() if not User.table_exists(): User.create_table() database.close()
def members(): members = Entity.select().where(Entity.is_member) return render_template('admin/members.html', members=members)
def update(entity_id, name, email, phone): entity = Entity.get(Entity.id == entity_id) entity.name = name entity.email = email entity.phone = phone entity.save()
def invalidate_token(id): member = Entity.get(Entity.id == id) member.token = None member.token_expiry = None member.save()
class MembersTestCases(unittest.TestCase): def setUp(self): self.test_member = Entity() self.test_member.is_member = True self.test_member.name = "Jane Smith" self.test_member.email = "*****@*****.**" self.test_member.phone = "+61 (02) 1234 5678" self.test_member.joined_date = date.today()-timedelta(days=1) self.test_member.agreement_date = date.today() self.test_member.is_keyholder = False self.test_member.save() self.joined_date = "2014-12-24" self.agreement_date = "2014-12-25" def tearDown(self): self.test_member.delete_instance() def test_get(self): member = members.get(self.test_member.id) self.assertEqual(member, self.test_member) def test_get_bad_id(self): member = members.get(12345) self.assertIsNone(member) def test_validate(self): errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 0) def test_validate_name(self): errors = members.validate("", self.test_member.email, self.test_member.phone, self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) def test_validate_email(self): errors = members.validate(self.test_member.name, "", self.test_member.phone, self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) errors = members.validate(self.test_member.name, "not-an-email.com", self.test_member.phone, self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) errors = members.validate(self.test_member.name, "not-an-email@", self.test_member.phone, self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) def test_validate_phone(self): errors = members.validate(self.test_member.name, self.test_member.email, "", self.joined_date, self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 0) def test_validate_joined_date(self): errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, "2014-12-25", self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 0) errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, "The 25th of December, Stardate 21020", self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) def test_validate_agreement_date(self): errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, self.joined_date, "2014-12-25", self.test_member.is_keyholder) self.assertEqual(len(errors), 0) errors = members.validate(self.test_member.name, self.test_member.email, self.test_member.phone, "The 25th of December, Stardate 21020", self.agreement_date, self.test_member.is_keyholder) self.assertEqual(len(errors), 1) def test_create(self): member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, self.test_member.agreement_date, self.test_member.is_keyholder) member = Entity.get(Entity.id == member_id) self.assertNotEqual(member.id, self.test_member.id) self.assertEqual(member.name, self.test_member.name) self.assertEqual(member.email, self.test_member.email) self.assertEqual(member.phone, self.test_member.phone) self.assertEqual(member.joined_date, self.test_member.joined_date) self.assertEqual(member.agreement_date, self.test_member.agreement_date) self.assertEqual(member.is_keyholder, self.test_member.is_keyholder) member.delete_instance() member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, None, self.test_member.agreement_date, self.test_member.is_keyholder) member = Entity.get(Entity.id == member_id) self.assertEqual(member.joined_date, date.today()) member.delete_instance() member_id = members.create(self.test_member.name, self.test_member.email, self.test_member.phone, self.test_member.joined_date, None, self.test_member.is_keyholder) member = Entity.get(Entity.id == member_id) self.assertEqual(member.agreement_date, date.today()) member.delete_instance() def test_update(self): new_name = "Joe Flanders" new_email = "*****@*****.**" new_phone = "(04) 9876 5432" new_joined_date = date.today()-timedelta(days=7) new_agreement_date = date.today()-timedelta(days=6) new_is_keyholder = True members.update(self.test_member.id, new_name, new_email, new_phone, new_joined_date, new_agreement_date, new_is_keyholder) member = Entity.get(Entity.id == self.test_member.id) self.assertEqual(member.name, new_name) self.assertEqual(member.email, new_email) self.assertEqual(member.phone, new_phone) self.assertEqual(member.joined_date, new_joined_date) self.assertEqual(member.agreement_date, new_agreement_date) self.assertEqual(member.is_keyholder, new_is_keyholder) def test_create_token(self): token = members.create_token(self.test_member.email) member = members.get(self.test_member.id) self.assertEqual(token, member.token) def test_authenticate_token(self): token = members.create_token(self.test_member.email) valid = members.authenticate_token(token) self.assertTrue(valid) def test_authenticate_token_expiry(self): with freeze_time("2012-01-14 10:00:00"): token = members.create_token(self.test_member.email) with freeze_time("2012-01-15 09:59:59"): member = members.authenticate_token(token) self.assertEqual(member, self.test_member) with freeze_time("2012-01-15 10:00:01"): member = members.authenticate_token(token) self.assertEqual(member, None) def test_invalidate_token(self): members.create_token(self.test_member.email) members.invalidate_token(self.test_member.id) member = members.get(self.test_member.id) self.assertEqual(member.token, None) self.assertEqual(member.token_expiry, None)
def create(name, email, phone, joined_date=None, agreement_date=None, is_keyholder=None): if joined_date is None: joined_date = date.today() if agreement_date is None: agreement_date = date.today() member = Entity() member.is_member = True member.name = name member.email = email.lower() member.phone = phone member.joined_date = joined_date member.agreement_date = agreement_date if is_keyholder is None: member.is_keyholder = False else: member.is_keyholder = is_keyholder member.save() return member.id
def entities(): entities = Entity.select().where(Entity.is_member == False) # noqa return render_template('admin/entities.html', entities=entities)
class EntitiesTestCases(unittest.TestCase): def setUp(self): self.test_entity = Entity() self.test_entity.is_member = False self.test_entity.name = "Jane Smith" self.test_entity.email = "*****@*****.**" self.test_entity.phone = "+61 (02) 1234 5678" self.test_entity.save() def tearDown(self): self.test_entity.delete_instance() def test_get(self): entity = entities.get(self.test_entity.id) self.assertEqual(entity, self.test_entity) def test_get_bad_id(self): entity = entities.get(12345) self.assertIsNone(entity) def test_validate(self): errors = entities.validate(self.test_entity.name, self.test_entity.email, self.test_entity.phone) self.assertEqual(len(errors), 0) def test_validate_name(self): errors = entities.validate("", self.test_entity.email, self.test_entity.phone) self.assertEqual(len(errors), 1) def test_validate_email(self): errors = entities.validate(self.test_entity.name, "", self.test_entity.phone) self.assertEqual(len(errors), 0) errors = entities.validate(self.test_entity.name, "not-an-email.com", self.test_entity.phone) self.assertEqual(len(errors), 1) errors = entities.validate(self.test_entity.name, "not-an-email@", self.test_entity.phone) self.assertEqual(len(errors), 1) def test_validate_phone(self): errors = entities.validate(self.test_entity.name, self.test_entity.email, "") self.assertEqual(len(errors), 0) def test_create(self): entity_id = entities.create(self.test_entity.name, self.test_entity.email, self.test_entity.phone) entity = Entity.get(Entity.id == entity_id) self.assertNotEqual(entity.id, self.test_entity.id) self.assertEqual(entity.name, self.test_entity.name) self.assertEqual(entity.email, self.test_entity.email) self.assertEqual(entity.phone, self.test_entity.phone) entity.delete_instance() def test_update(self): new_name = "Joe Flanders" new_email = "*****@*****.**" new_phone = "(04) 9876 5432" entities.update(self.test_entity.id, new_name, new_email, new_phone) entity = Entity.get(Entity.id == self.test_entity.id) self.assertEqual(entity.name, new_name) self.assertEqual(entity.email, new_email) self.assertEqual(entity.phone, new_phone)
app.config.from_object('settings') database = SqliteDatabase(app.config['DATABASE'], threadlocals=True) from mhvdb2.admin import admin # noqa app.register_blueprint(admin, url_prefix='/admin') @app.before_request def before_request(): g.db = database g.db.connect() @app.after_request def after_request(response): g.db.close() return response import mhvdb2.routes # noqa from mhvdb2.models import Entity, User # noqa database.connect() if not Entity.table_exists(): Entity.create_table() if not User.table_exists(): User.create_table() database.close()