Esempio n. 1
0
 def create_notes(self, num_notes, create=True):
     notes = []
     for n in range(num_notes):
         note = models.Note(**self.note)
         if create:
             note.save()
         notes.append(note)
     return notes
Esempio n. 2
0
    def test_clean_valid_note(self):
        reference_note = models.Note(**self.note)
        body = reference_note.as_dict()

        note = models.Note(course_id=self.course_key, user=self.student)
        try:
            note.clean(json.dumps(body))
            self.assertEqual(note.uri, body['uri'])
            self.assertEqual(note.text, body['text'])
            self.assertEqual(note.quote, body['quote'])
            self.assertEqual(note.range_start, body['ranges'][0]['start'])
            self.assertEqual(note.range_start_offset, body['ranges'][0]['startOffset'])
            self.assertEqual(note.range_end, body['ranges'][0]['end'])
            self.assertEqual(note.range_end_offset, body['ranges'][0]['endOffset'])
            self.assertEqual(note.tags, ','.join(body['tags']))
        except ValidationError:
            self.fail('a valid note should not raise an exception')
Esempio n. 3
0
    def test_clean_invalid_note(self):
        note = models.Note(course_id=self.course_key, user=self.student)
        for empty_type in (None, '', 0, []):
            with self.assertRaises(ValidationError):
                note.clean(None)

        with self.assertRaises(ValidationError):
            note.clean(json.dumps({
                'text': 'foo',
                'quote': 'bar',
                'ranges': [{} for __ in range(10)]  # too many ranges
            }))
Esempio n. 4
0
    def create(self, validated_data):
        try:
            categories = validated_data.pop('categories')
        except KeyError:
            categories = None
        instance = models.Note(**validated_data)
        instance.save()

        if categories:
            for category in categories:
                category_obj = models.Category.objects.filter(
                    name=category['name']).first()
                if category_obj:
                    instance.categories.add(category_obj)
        instance.save()
        return instance
Esempio n. 5
0
 def test_as_dict(self):
     note = models.Note(course_id=self.course_key, user=self.student)
     d = note.as_dict()
     self.assertNotIsInstance(d, basestring)
     self.assertEqual(d['user_id'], self.student.id)
     self.assertTrue('course_id' not in d)
Esempio n. 6
0
 def test_as_dict(self):
     note = models.Note(course_id=self.course_key, user=self.student)
     d = note.as_dict()
     self.assertNotIsInstance(d, six.string_types)
     self.assertEqual(d['user_id'], self.student.id)
     self.assertNotIn('course_id', d)