def setUp(self): self.gc_schedule = GCSchedule()
class TestGCSchedule(TestCase): def setUp(self): self.gc_schedule = GCSchedule() def test_get_gc_email(self): fake_directory_access = Mock() fake_directory_access.users().list().execute.return_value = { 'users': [] } with self.assertRaises(KeyError): self.gc_schedule.get_gc_email(fake_directory_access, 'Alex Etling') fake_directory_access.users().list.assert_has_calls([ call(), call(customer='my_customer', query="name:Alex Etling"), call().execute(), call(customer='my_customer', query="name:Etling"), call().execute(), call(customer='my_customer', query="name:Alex"), call().execute() ]) def test_get_gc_email_no_type_error(self): fake_directory_access = Mock() fake_directory_access.users().list().execute.return_value = {} with self.assertRaises(KeyError): self.gc_schedule.get_gc_email(fake_directory_access, 'Alex Etling') fake_directory_access.users().list.assert_has_calls([ call(), call(customer='my_customer', query="name:Alex Etling"), call().execute(), call(customer='my_customer', query="name:Etling"), call().execute(), call(customer='my_customer', query="name:Alex"), call().execute() ]) def test_create_meeting(self): fake_directory_access = Mock() fake_calendar_access = Mock() fake_get_gc_email = Mock() self.gc_schedule.get_gc_email = fake_get_gc_email fake_get_gc_email.side_effect = ["*****@*****.**", "*****@*****.**"] expected_body = { 'attendees': [{ 'email': '*****@*****.**' }, { 'email': '*****@*****.**' }], 'start': { 'timeZone': 'America/New_York', 'dateTime': '2016-01-01 10:00:00' }, 'end': { 'timeZone': 'America/New_York', 'dateTime': '2016-01-01 10:30:00' }, 'summary': 'Peer One on One: Alex Etling and Bob Notreal', 'description': 'This is a chance to meet and talk with someone else at GC. If you are not sure what to talk about, consult this link: http://jasonevanish.com/2014/05/29/101-questions-to-ask-in-1-on-1s/' } self.gc_schedule.create_meeting( ('Alex Etling', 'Bob Notreal'), '2016-01-01 10:00:00', '2016-01-01 10:30:00', fake_calendar_access, fake_directory_access) fake_calendar_access.events().insert.assert_has_calls([ call( calendarId= '*****@*****.**', body=expected_body, sendNotifications=True), call().execute() ])
import json, os from flask import Flask, render_template, request import arrow from one_on_one.group import GCGroup from one_on_one.pair import GCPair from one_on_one.schedule import GCSchedule group_instance = GCGroup() pair_instance = GCPair() schedule_instance = GCSchedule() app = Flask(__name__) app.config.update(PROPAGATE_EXCEPTIONS=True) @app.route('/') def home(): return render_template("base.html") @app.route('/people') def people(): group = group_instance.get() return render_template("people.html", group=group, group_string=json.dumps(group)) @app.route('/pairs', methods=["POST"]) def pairs(): group = json.loads(request.form["group"]) exclude_list_string = request.form["exclude_list"].rstrip('\n\t ') exclude_list = map(lambda input: input.strip(), exclude_list_string.split(',') if exclude_list_string else [])\ pairs_doc = pair_instance.get_pairs(group, exclude_list=exclude_list)
class TestGCSchedule(TestCase): def setUp(self): self.gc_schedule = GCSchedule() def test_get_gc_email(self): fake_directory_access = Mock() fake_directory_access.users().list().execute.return_value = {"users": []} with self.assertRaises(KeyError): self.gc_schedule.get_gc_email(fake_directory_access, "Alex Etling") fake_directory_access.users().list.assert_has_calls( [ call(), call(customer="my_customer", query="name:Alex Etling"), call().execute(), call(customer="my_customer", query="name:Etling"), call().execute(), call(customer="my_customer", query="name:Alex"), call().execute(), ] ) def test_get_gc_email_no_type_error(self): fake_directory_access = Mock() fake_directory_access.users().list().execute.return_value = {} with self.assertRaises(KeyError): self.gc_schedule.get_gc_email(fake_directory_access, "Alex Etling") fake_directory_access.users().list.assert_has_calls( [ call(), call(customer="my_customer", query="name:Alex Etling"), call().execute(), call(customer="my_customer", query="name:Etling"), call().execute(), call(customer="my_customer", query="name:Alex"), call().execute(), ] ) def test_create_meeting(self): fake_directory_access = Mock() fake_calendar_access = Mock() fake_get_gc_email = Mock() self.gc_schedule.get_gc_email = fake_get_gc_email fake_get_gc_email.side_effect = ["*****@*****.**", "*****@*****.**"] expected_body = { "attendees": [{"email": "*****@*****.**"}, {"email": "*****@*****.**"}], "start": {"timeZone": "America/New_York", "dateTime": "2016-01-01 10:00:00"}, "end": {"timeZone": "America/New_York", "dateTime": "2016-01-01 10:30:00"}, "summary": "Peer One on One: Alex Etling and Bob Notreal", "description": "This is a chance to meet and talk with someone else at GC. If you are not sure what to talk about, consult this link: http://jasonevanish.com/2014/05/29/101-questions-to-ask-in-1-on-1s/", } self.gc_schedule.create_meeting( ("Alex Etling", "Bob Notreal"), "2016-01-01 10:00:00", "2016-01-01 10:30:00", fake_calendar_access, fake_directory_access, ) fake_calendar_access.events().insert.assert_has_calls( [ call( calendarId="*****@*****.**", body=expected_body, sendNotifications=True, ), call().execute(), ] )