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
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')
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 }))
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
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)
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)