示例#1
0
    def test_update_notes_is_working_properly_with_put(self):
        """testing if PUT: /api/entities/{id}/notes should raise 404
        """
        from stalker import db, Entity, Note
        test_entity = Entity(name='Test Entity')
        db.DBSession.add(test_entity)

        # Note 1
        test_note1 = Note(content='Note 1')
        db.DBSession.add(test_note1)

        # Note 2
        test_note2 = Note(content='Note 2')
        db.DBSession.add(test_note2)

        # Note 3
        test_note3 = Note(content='Note 3')
        db.DBSession.add(test_note3)

        # Note 4
        test_note4 = Note(content='Note 4')
        db.DBSession.add(test_note4)

        # Note 5
        test_note5 = Note(content='Note 5')
        db.DBSession.add(test_note5)

        test_entity.notes = [test_note1, test_note2, test_note3]
        db.DBSession.commit()

        self.test_app.put('/api/entities/%s/notes' % test_entity.id,
                          params={'note_id': [test_note4.id, test_note5.id]},
                          status=404)
示例#2
0
    def test_get_notes_view_is_working_properly(self):
        """testing if GET /api/entities/{id}/notes view is working properly
        """
        from stalker import db, Entity, Note
        test_entity = Entity(name='Test Entity')
        db.DBSession.add(test_entity)

        test_note1 = Note(description='This is a Test note 1')
        db.DBSession.add(test_note1)

        test_note2 = Note(description='This is a Test note 2')
        db.DBSession.add(test_note2)

        test_entity.notes = [test_note1, test_note2]
        db.DBSession.commit()

        response = self.test_app.get('/api/entities/%s/notes' % test_entity.id,
                                     status=200)

        self.assertEqual(
            sorted(response.json_body),
            sorted([{
                'id': test_note1.id,
                '$ref': '/api/notes/%s' % test_note1.id,
                'name': test_note1.name,
                'entity_type': test_note1.entity_type
            }, {
                'id': test_note2.id,
                '$ref': '/api/notes/%s' % test_note2.id,
                'name': test_note2.name,
                'entity_type': test_note2.entity_type
            }]))
示例#3
0
    def test_entity_notes_is_working_properly(self):
        """testing if get_notes is working properly
        """
        from stalker import db, Entity, Note
        test_entity = Entity(name='Test Entity')
        db.DBSession.add(test_entity)

        # Note 1
        test_note1 = Note(content='Note 1')
        db.DBSession.add(test_note1)

        # Note 2
        test_note2 = Note(content='Note 2')
        db.DBSession.add(test_note2)

        # Note 3
        test_note3 = Note(content='Note 3')
        db.DBSession.add(test_note3)

        # dummy Note 4
        test_note4 = Note(content='Note 4')
        db.DBSession.add(test_note4)

        test_entity.notes = [test_note1, test_note2, test_note3]
        db.DBSession.commit()

        from stalker_pyramid.testing import DummyRequest
        request = DummyRequest()
        request.matchdict['id'] = test_entity.id
        request.method = 'GET'

        entity_view = entity.EntityViews(request)
        response = entity_view.get_notes()

        self.assertEqual(
            sorted(response.json_body),
            sorted([
                {
                    'id': test_note1.id,
                    '$ref': '/api/notes/%s' % test_note1.id,
                    'name': test_note1.name,
                    'entity_type': 'Note'
                },
                {
                    'id': test_note2.id,
                    '$ref': '/api/notes/%s' % test_note2.id,
                    'name': test_note2.name,
                    'entity_type': 'Note'
                },
                {
                    'id': test_note3.id,
                    '$ref': '/api/notes/%s' % test_note3.id,
                    'name': test_note3.name,
                    'entity_type': 'Note'
                },
            ]))
示例#4
0
    def test_update_notes_is_working_properly_with_patch(self):
        """testing if update_notes is working properly when the request method
        is PATCH
        """
        from stalker import db, Entity, Note
        test_entity = Entity(name='Test Entity')
        db.DBSession.add(test_entity)

        # Note 1
        test_note1 = Note(content='Note 1')
        db.DBSession.add(test_note1)

        # Note 2
        test_note2 = Note(content='Note 2')
        db.DBSession.add(test_note2)

        # Note 3
        test_note3 = Note(content='Note 3')
        db.DBSession.add(test_note3)

        # Note 4
        test_note4 = Note(content='Note 4')
        db.DBSession.add(test_note4)

        # Note 5
        test_note5 = Note(content='Note 5')
        db.DBSession.add(test_note5)

        test_entity.notes = [test_note1, test_note2, test_note3]
        db.DBSession.commit()

        from stalker_pyramid.testing import DummyRequest, DummyMultiDict
        request = DummyRequest()
        request.matchdict['id'] = test_entity.id
        request.method = 'PATCH'

        # add the 4th and 5th notes
        request.params = DummyMultiDict()
        request.params['note_id'] = [test_note4.id, test_note5.id]
        request.POST = request.params

        entity_view = entity.EntityViews(request)
        entity_view.update_notes()

        test_entity = Entity.query.filter(Entity.id == test_entity.id).first()
        self.assertEqual(
            sorted(test_entity.notes),
            sorted(
                [test_note1, test_note2, test_note3, test_note4, test_note5]))
示例#5
0
    def test_update_notes_is_working_properly_with_patch(self):
        """testing if PATCH /api/entities/{id}/notes view is working properly
        """
        from stalker import db, Entity, Note
        test_entity = Entity(name='Test Entity')
        db.DBSession.add(test_entity)

        # Note 1
        test_note1 = Note(content='Note 1')
        db.DBSession.add(test_note1)

        # Note 2
        test_note2 = Note(content='Note 2')
        db.DBSession.add(test_note2)

        # Note 3
        test_note3 = Note(content='Note 3')
        db.DBSession.add(test_note3)

        # Note 4
        test_note4 = Note(content='Note 4')
        db.DBSession.add(test_note4)

        # Note 5
        test_note5 = Note(content='Note 5')
        db.DBSession.add(test_note5)

        test_entity.notes = [test_note1, test_note2, test_note3]
        db.DBSession.commit()

        self.test_app.patch('/api/entities/%s/notes' % test_entity.id,
                            params={'note_id': [test_note4.id, test_note5.id]},
                            status=200)

        test_entity = Entity.query.filter(Entity.id == test_entity.id).first()
        self.assertEqual(
            sorted(test_entity.notes),
            sorted(
                [test_note1, test_note2, test_note3, test_note4, test_note5]))