Example #1
0
 def setUp(self):
     self.gc_schedule = GCSchedule()
Example #2
0
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()
        ])
Example #3
0
 def setUp(self):
     self.gc_schedule = GCSchedule()
Example #4
0
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)
Example #5
0
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(),
            ]
        )