Beispiel #1
0
 def setUp(self):
     super(TestStudentListApi, self).setUp()
     Student.new_student('alice',
                         'alice smith',
                         email='*****@*****.**',
                         year=2015).key.get(use_cache=False)
     self.alice = self.new_user()
    def test_list_stats(self):
        student = Student.new_student(
            'bob', 'bob smith', email='*****@*****.**', year=2015
        ).key.get(use_cache=False)
        roshreview.RoshReviewUserStats.new_stats(
            student,
            {
                "email": "*****@*****.**",
                "training_level": "Resident",
                "pgy": -5,
                "percentage_complete": 0,
                "cumulative_performance": 0,
                "category_performances": {}
            }
        ).key.get(use_cache=False)

        alice = self.new_user(is_staff=True)
        headers = self.login(user=alice)

        resp = self.app.get(
            '%s/dashboard/roshreview/stats' % api.path,
            headers=headers
        ).json
        api.validate('RoshReviewUserStatsList', resp)
        self.assertEqual(1, len(resp['stats']))
        self.assertEqual(0, resp['stats'][0]['performance'])
Beispiel #3
0
    def setUp(self):
        super(TestStudentNameApi, self).setUp()

        self.bob = Student.new_student('bob',
                                       'bob smith',
                                       email='*****@*****.**',
                                       year=2015).key.get(use_cache=False)
Beispiel #4
0
def row_handler(line_details):
    year = context.get().mapreduce_spec.mapper.params.get('student_year')
    pos, line = line_details

    if not pos:
        # skip header
        raise StopIteration()

    if not year:
        logging.error('Failed to create a new student. The year is missing')
        raise StopIteration()
    row = csv.reader(StringIO.StringIO(line)).next()

    if len(row) < 4:
        logging.error(
            'Failed to create a new student. Some fields are missing: %s',
            line)
        raise StopIteration()

    _, surname, name, email = row[0:4]
    try:
        entity = Student.new_student(surname,
                                     name,
                                     email=email,
                                     year=year,
                                     commit=False)
    except (ValueError, TypeError, ValidationError) as e:
        logging.error(
            'Failed to create a new student. wrong fields: %s.\n'
            'Error: %s', line, e)
        raise StopIteration

    yield op.db.Put(entity)
    yield op.counters.Increment('student added/updated', 1)
    def test_get_list(self):
        Student.new_student(
            'bob', 'bob smith', email='*****@*****.**', year=2016
        ).key.get(use_cache=False)
        Student.new_student(
            'alice', 'alice smith', email='*****@*****.**', year=2015
        ).key.get(use_cache=False)

        headers = self.logoff()
        resp = self.app.get(
            '%s/dashboard/pgy' % api.path,
            headers=headers,
        )
        api.validate('PGYList', resp.json)
        self.assertEqual(2, len(resp.json['pgy']))
        self.assertEqual('max-age=300, public', resp.headers['Cache-Control'])
    def test_archive_year(self):
        Student.new_student(
            'bob', 'bob smith', email='*****@*****.**', year=2016
        ).key.get(use_cache=False)
        Student.new_student(
            'alice', 'alice smith', email='*****@*****.**', year=2015
        ).key.get(use_cache=False)

        bob = self.new_user(is_staff=True)
        headers = self.login(user=bob)
        self.app.delete(
            '%s/dashboard/pgy/2016' % api.path,
            headers=headers,
        )
        self.assertTrue(Student.get_by_id('A0002', use_cache=False).is_active)
        self.assertFalse(Student.get_by_id('A0001', use_cache=False).is_active)
Beispiel #7
0
 def add_student(data):
     display_name, email, year = data
     given_name = display_name.split(' ', 1)[0]
     student = Student.new_student(
         given_name, display_name, email=email, year=year, commit=False
     )
     student.put_async()
     return student
Beispiel #8
0
    def test_archive_year(self):
        Student.new_student('bob',
                            'bob smith',
                            email='*****@*****.**',
                            year=2016).key.get(use_cache=False)
        Student.new_student('alice',
                            'alice smith',
                            email='*****@*****.**',
                            year=2015).key.get(use_cache=False)

        bob = self.new_user(is_staff=True)
        headers = self.login(user=bob)
        self.app.delete(
            '%s/dashboard/pgy/2016' % api.path,
            headers=headers,
        )
        self.assertTrue(Student.get_by_id('A0002', use_cache=False).is_active)
        self.assertFalse(Student.get_by_id('A0001', use_cache=False).is_active)
Beispiel #9
0
    def test_get_list(self):
        Student.new_student('bob',
                            'bob smith',
                            email='*****@*****.**',
                            year=2016).key.get(use_cache=False)
        Student.new_student('alice',
                            'alice smith',
                            email='*****@*****.**',
                            year=2015).key.get(use_cache=False)

        headers = self.logoff()
        resp = self.app.get(
            '%s/dashboard/pgy' % api.path,
            headers=headers,
        )
        api.validate('PGYList', resp.json)
        self.assertEqual(2, len(resp.json['pgy']))
        self.assertEqual('max-age=300, public', resp.headers['Cache-Control'])
Beispiel #10
0
    def setUp(self):
        super(TestRoshReviewUserStats, self).setUp()

        services.config.ROSH_REVIEW_API_URL_PATTERN = (
            'http://example.com/%s/subscriber_details?'
        )
        services.config.ROSH_REVIEW_API_KEY = 'api-key'

        self.student = Student.new_student(
            'bob', 'bob smith', email='*****@*****.**', year=2015
        ).key.get(use_cache=False)
Beispiel #11
0
    def setUp(self):
        super(TestRoshReviewUserStats, self).setUp()

        services.config.ROSH_REVIEW_API_URL_PATTERN = (
            'http://example.com/%s/subscriber_details?')
        services.config.ROSH_REVIEW_API_KEY = 'api-key'

        self.student = Student.new_student('bob',
                                           'bob smith',
                                           email='*****@*****.**',
                                           year=2015).key.get(use_cache=False)
    def setUp(self):
        super(TestRoshReviewUserStatsApi, self).setUp()

        student = Student.new_student(
            'bob', 'bob smith', email='*****@*****.**', year=2015
        ).key.get(use_cache=False)
        roshreview.RoshReviewUserStats.new_stats(
            student,
            {
                "email": "*****@*****.**",
                "training_level": "Resident",
                "pgy": -5,
                "percentage_complete": 0,
                "cumulative_performance": 0,
                "category_performances": {
                    "FOO": 0
                }
            }
        ).key.get(use_cache=False)
    def setUp(self):
        super(TestRepositoryDocumentApi, self).setUp()

        self.admin = self.new_user(is_admin=True)
        self.student = Student.new_student(
            'bob', 'bob smith', email='*****@*****.**', year=2015
        ).key.get(use_cache=False)

        file_name = files.blobstore.create(mime_type='text/plain')
        with files.open(file_name, 'a') as f:
            f.write('test')
        files.finalize(file_name)
        blob_key = files.blobstore.get_blob_key(file_name)

        self.document = models.Document.new_file(
            self.student.key.id(),
            BlobInfo.get(blob_key),
            'SHELF',
            sender=self.admin,
            name='test'
        ).key.get(use_cache=False)
Beispiel #14
0
 def setUp(self):
     super(TestFirstAidUserStats, self).setUp()
     self.student = Student.new_student('bob',
                                        'bob smith',
                                        email='*****@*****.**',
                                        year=2015).key.get(use_cache=False)
Beispiel #15
0
 def setUp(self):
     super(TestFirstAidUserStats, self).setUp()
     self.student = Student.new_student(
         'bob', 'bob smith', email='*****@*****.**', year=2015
     ).key.get(use_cache=False)
 def setUp(self):
     super(TestAssessmentExamListApi, self).setUp()
     Student.new_student(
         'alice', 'alice smith', email='*****@*****.**', year=2015
     ).key.get(use_cache=False)
     self.alice = self.new_user(student_id='A0001')
    def setUp(self):
        super(TestStudentNameApi, self).setUp()

        self.bob = Student.new_student(
            'bob', 'bob smith', email='*****@*****.**', year=2015
        ).key.get(use_cache=False)