Пример #1
0
    def test_attach_tags_to_record_pass(self):
        """Successfully attach tags to a record."""
        from invenio.modules.records.models import Record
        # first create a record
        test_record = Record(
            creation_date=datetime.now(),
            modification_date=datetime.now()
        )
        test_record_info = dict(
            name="test_record"
        )
        test_record.additional_info = test_record_info
        db.session.add(test_record)
        db.session.commit()
        # attach tags to the record
        tag_data = dict(
            tags=["ROOT", "PHYSICS"]
        )
        answer = self.post(
            'recordlisttagresource',
            user_id=self.user_a.id,
            data=tag_data,
            urlargs=dict(record_id=test_record.id),
        )
        # answer.json is a list of TagRepresentation objects
        ordered_created_tags = []
        for tag_representation in answer.json:
            ordered_tag_repr = OrderedDict(
                sorted(tag_representation.items(), key=lambda t: t[0])
            )
            ordered_created_tags.append(ordered_tag_repr)
        #now query DB
        get_answer = self.get(
            'recordlisttagresource',
            user_id=self.user_a.id,
            urlargs=dict(record_id=test_record.id),
        )
        ordered_retrieved_tags = []
        for retrieved_tag_repr in get_answer.json:
            ordered_retrieved_tag_repr = OrderedDict(
                sorted(retrieved_tag_repr.items(), key=lambda t: t[0])
            )
            ordered_retrieved_tags.append(ordered_retrieved_tag_repr)

        self.assertEqual(ordered_created_tags, ordered_retrieved_tags)
        self.delete(
            'taglistresource',
            user_id=self.user_a.id,
            code=204
        )
        # delete the created record
        db.session.delete(test_record)
        db.session.commit()
Пример #2
0
    def test_attach_tags_to_record_pass(self):
        """Successfully attach tags to a record."""
        from invenio.modules.records.models import Record
        # first create a record
        test_record = Record(creation_date=datetime.now(),
                             modification_date=datetime.now())
        test_record_info = dict(name="test_record")
        test_record.additional_info = test_record_info
        db.session.add(test_record)
        db.session.commit()
        # attach tags to the record
        tag_data = dict(tags=["ROOT", "PHYSICS"])
        answer = self.post(
            'recordlisttagresource',
            user_id=self.user_a.id,
            data=tag_data,
            urlargs=dict(record_id=test_record.id),
        )
        # answer.json is a list of TagRepresentation objects
        ordered_created_tags = []
        for tag_representation in answer.json:
            ordered_tag_repr = OrderedDict(
                sorted(tag_representation.items(), key=lambda t: t[0]))
            ordered_created_tags.append(ordered_tag_repr)
        #now query DB
        get_answer = self.get(
            'recordlisttagresource',
            user_id=self.user_a.id,
            urlargs=dict(record_id=test_record.id),
        )
        ordered_retrieved_tags = []
        for retrieved_tag_repr in get_answer.json:
            ordered_retrieved_tag_repr = OrderedDict(
                sorted(retrieved_tag_repr.items(), key=lambda t: t[0]))
            ordered_retrieved_tags.append(ordered_retrieved_tag_repr)

        self.assertEqual(ordered_created_tags, ordered_retrieved_tags)
        self.delete('taglistresource', user_id=self.user_a.id, code=204)
        # delete the created record
        db.session.delete(test_record)
        db.session.commit()