示例#1
0
    def test_install_without_package_name(self):
        request = DummyRequest()
        request.context = DummyResource()
        request.params['package_name'] = None

        response = CatalogItemViews(request).install()
        self.assertEqual(response.status_int, 500)
示例#2
0
    def test_get(self):
        fake_response = {'project': 'globalapi'}
        request = DummyRequest()
        request.context = DummyResource()

        response = home_views.HomeViews(request).get()
        self.assertEqual(response.json_body, fake_response)
示例#3
0
    def test_get(self):
        fake_response = {'project': 'localapi'}
        request = DummyRequest()
        request.context = DummyResource()

        response = HomeViews(request).get()
        self.assertEqual(response, fake_response)
示例#4
0
def test_forbidden_view_without_user_returns_redirect_to_login():
    from paildocket.views.root import forbidden
    request = DummyRequest()
    request.user = False
    request.context = DummyResource()
    response = forbidden(request)
    assert urlparse(response.location).path == '/login'
示例#5
0
 def dummy_request(self):
     request = DummyRequest()
     request.context = DummyResource()
     request.userdb = self.userdb
     request.db = self.db
     request.registry.settings = self.settings
     return request
示例#6
0
    def test_index_exception(self, mock_getlist):
        error_message = 'GET PACKAGE LIST EXCEPTION'
        mock_getlist.side_effect = Exception(error_message)
        request = DummyRequest()
        request.context = DummyResource()

        response = CatalogViews(request).index()
        self.assertEqual(response['status'], 500)
        self.assertTrue(error_message in response['errors'])
示例#7
0
    def test_it_not_submitted(self):
        user = User(name='foo', role='editor')
        page = Page(name='abc', data='hello', creator=user)
        self.dbsession.add_all([page, user])

        request = DummyRequest(dbsession=self.dbsession)
        request.context = PageResource(page)
        info = PageAddEditView(request)()
        assert info['context'].page == page
示例#8
0
    def test_upload_no_product_id(self):
        request = DummyRequest()
        request.context = DummyResource()
        view = package_views.PackagesViews(request)

        response = view.upload()
        self.assertTrue(response.json_body is not None)
        result = response.json_body
        self.assertTrue(result[u'errors'])
示例#9
0
    def test_index_404(self, mock_getlist):
        mock_package_list = {'status': 404}
        mock_getlist.return_value = mock_package_list
        request = DummyRequest()
        request.context = DummyResource()
        request.matchdict['product_id'] = 'dummy'
        view = package_views.PackagesViews(request)

        response = view.index()
        self.assertIs(type(response), httpexceptions.HTTPNotFound)
示例#10
0
    def test_install(self, mock_install_package):
        fake_response = HTTPOk
        mock_install_package.return_value = fake_response

        request = DummyRequest()
        request.context = DummyResource()
        request.params['package_name'] = 'dummy'

        response = CatalogItemViews(request).install()
        self.assertEqual(response, fake_response)
示例#11
0
    def test_index_returns_404(self, mock_package_list):
        fake_response = {'status': 404, 'packages': [{}]}
        mock_package_list.return_value = fake_response
        request = DummyRequest()
        request.context = DummyResource()

        response = CatalogViews(request).index()
        self.assertEqual(type(response), dict)
        self.assertEqual(type(response['packages']), list)
        self.assertEqual(response['status'], 404)
示例#12
0
def test_resource_form_traversal():
    result = traverse(_root, "/rest/schools/%s/@view" % SCHOOL_ID)
    context = result['context']

    request = DummyRequest(params={})
    request.context = context

    from webapp.views.rest import json_rest_get_f
    result = json_rest_get_f(context, request)
    assert(result['id'] == SCHOOL_ID)
示例#13
0
    def test_get_404(self, mock_get_package):
        request = DummyRequest()
        request.context = DummyResource()
        request.matchdict['product_id'] = 'dummy'
        request.matchdict['package_id'] = 'test'
        mock_get_package_result = {
            'status': 404,
        }
        mock_get_package.return_value = mock_get_package_result
        view = package_views.PackageViews(request)

        response = view.get()
        self.assertIs(type(response), httpexceptions.HTTPNotFound)
示例#14
0
 def test_it_submitted(self):
     request = DummyRequest(
         {
             'submit': True,
             'name': 'AnotherPage',
             'body': 'Hello yo!'
         },
         dbsession=self.dbsession)
     request.user = User(name='foo', role='editor')
     request.context = PageResource(Page(name='AnotherPage'))
     PageAddEditView(request)()
     page = self.dbsession.query(Page).filter_by(name='AnotherPage').one()
     assert page.data == 'Hello yo!'
示例#15
0
    def test_index(self, mock_getlist):
        mock_package_list = {'status': 200, 'packages': [{'pkg1': 'test'}]}
        mock_getlist.return_value = mock_package_list
        request = DummyRequest()
        request.context = DummyResource()
        request.matchdict['product_id'] = 'dummy'
        request.params['filters'] = 'keyword'
        view = package_views.PackagesViews(request)

        response = view.index()
        self.assertEqual(type(response), dict)
        self.assertEqual(type(response['packages']), list)
        self.assertEqual(response['status'], 200)
        self.assertEqual(response, mock_package_list)
示例#16
0
    def test_index_500(self, mock_getlist):
        error_message = 'GET PACKAGE LIST EXCEPTION'
        mock_getlist.side_effect = \
            httpexceptions.HTTPInternalServerError(explanation=error_message,
                                                   detail=error_message)
        request = DummyRequest()
        request.context = DummyResource()
        request.matchdict['product_id'] = 'dummy'
        view = package_views.PackagesViews(request)

        response = view.index()
        self.assertEqual(response.status_code, 500)
        self.assertTrue(error_message in response.message)
        self.assertTrue(error_message in response.detail)
        self.assertTrue(len(response.json_body['errors']) > 0)
        self.assertIs(type(response), httpexceptions.HTTPInternalServerError)
示例#17
0
    def test_upload(self, mock_save, mock_response):
        fileupload = mock.MagicMock()
        fileupload.filename = 'filename on upload'
        mock_response = {'status': 201}
        mock_save.return_value = mock_response
        request = DummyRequest()
        request.context = DummyResource()
        request.matchdict['product_id'] = 'dummy'
        request.params = {'fileupload': fileupload}
        view = package_views.PackagesViews(request)

        response = view.upload()
        mock_save.assert_called_with(fileupload.filename, fileupload)
        self.assertTrue(mock_save.called)
        logger.debug(response)
        self.assertEqual(response.status_code, mock_response['status'])
        self.assertIs(type(response), httpexceptions.HTTPCreated)
示例#18
0
    def test_it_submitted(self):
        user = User(name='foo', role='editor')
        page = Page(name='abc', data='hello', creator=user)
        self.dbsession.add_all([page, user])
        self.dbsession.flush()

        request = DummyRequest(
            {
                'submit': True,
                'body': 'Hello yo!',
                'name': 'abc'
            },
            dbsession=self.dbsession)
        request.context = PageResource(page)
        response = PageAddEditView(request)()
        assert response.location == 'http://example.com/abc'
        assert page.data == 'Hello yo!'
示例#19
0
    def test_upload_500(self, mock_save, mock_response):
        fileupload = mock.MagicMock()
        fileupload.filename = 'filename on upload'
        error_message = "SAVE PACKAGE EXCEPTION"
        mock_save.side_effect = Exception(error_message)
        request = DummyRequest()
        request.context = DummyResource()
        request.matchdict['product_id'] = 'dummy'
        request.params = {'fileupload': fileupload}
        view = package_views.PackagesViews(request)

        response = view.upload()
        self.assertEqual(response.status_code, 500)
        self.assertTrue(error_message in response.message)
        self.assertTrue(error_message in response.detail)
        self.assertTrue(len(response.json_body['errors']) > 0)
        self.assertIs(type(response), httpexceptions.HTTPInternalServerError)
示例#20
0
    def test_get_500(self, mock_get_package):
        request = DummyRequest()
        request.context = DummyResource()
        request.matchdict['product_id'] = 'dummy'
        request.matchdict['package_id'] = 'test'
        mock_get_package_result = {
            'status': 404,
        }
        error_message = "GET PACKAGE EXCEPTION"
        mock_get_package.side_effect = Exception(error_message)
        view = package_views.PackageViews(request)

        response = view.get()
        self.assertEqual(response.status_code, 500)
        self.assertTrue(error_message in response.message)
        self.assertTrue(error_message in response.detail)
        self.assertTrue(len(response.json_body['errors']) > 0)
        self.assertIs(type(response), httpexceptions.HTTPInternalServerError)
示例#21
0
    def dummy_request(self, cookies={}):
        request = DummyRequest()
        request.context = DummyResource()
        request.userdb = self.userdb
        request.userdb_new = self.userdb_new
        request.db = self.db
        request.registry.settings = self.settings

        def propagate_user_changes(user):
            """
            Make sure there is a request.context.propagate_user_changes in testing too.
            """
            logger.debug('FREDRIK: Testing dummy_request.context propagate_user_changes')
            return self.request.amrelay.request_sync(user)

        request.context.propagate_user_changes = propagate_user_changes

        return request
示例#22
0
    def test_it(self):
        # add a page to the db
        user = User(name='foo', role='editor')
        page = Page(name='IDoExist',
                    data='Hello CruelWorld IDoExist',
                    creator=user)
        self.dbsession.add_all([page, user])

        # create a request asking for the page we've created
        request = DummyRequest(dbsession=self.dbsession)
        request.context = PageResource(page)

        # call the view we're testing and check its behavior
        info = PageDisplayView(request)()
        assert info['page'] == page
        assert info['content'] == (
            'Hello'
            ' <a href="http://example.com/add_page/CruelWorld">CruelWorld</a>'
            ' <a href="http://example.com/IDoExist">'
            'IDoExist</a>')
        assert info['edit_url'] == 'http://example.com/IDoExist/edit_page'
示例#23
0
    def dummy_request(self, cookies={}):
        request = DummyRequest()
        request.context = DummyResource()
        request.context.request = request
        request.userdb_new = self.userdb_new
        request.db = self.db
        request.dashboard_userdb = self.dashboard_db
        request.registry.settings = self.settings

        def propagate_user_changes(user):
            """
            Make sure there is a request.context.propagate_user_changes in testing too.
            """
            logger.debug(
                'FREDRIK: Testing dummy_request.context propagate_user_changes'
            )
            return self.request.amrelay.request_sync(user)

        request.context.propagate_user_changes = propagate_user_changes

        return request
示例#24
0
def run(app, files):
    root = app.root_factory(app)
    collection = root['file']
    dummy_request = DummyRequest(root=root, registry=app.registry, _stats={})
    manager.push({'request': dummy_request, 'registry': app.registry})
    for i, uuid in enumerate(collection):
        item = root.get_by_uuid(uuid)
        dummy_request.context = item
        properties = item.upgrade_properties()
        sheets = None
        value = files.get(str(uuid))
        if value is not None:
            properties['file_size'] = value['file_size']
            sheets = {
                'external': {
                    'service': 's3',
                    'bucket': 'encode-files',
                    'key': value['s3_file_name'],
                },
            }
        item.update(properties, sheets=sheets)
        if (i + 1) % 100 == 0:
            logger.info('Updated %d', i + 1)
示例#25
0
def run(app, files):
    root = app.root_factory(app)
    collection = root['file']
    dummy_request = DummyRequest(root=root, registry=app.registry, _stats={})
    manager.push({'request': dummy_request, 'registry': app.registry})
    for i, uuid in enumerate(collection):
        item = root.get_by_uuid(uuid)
        dummy_request.context = item
        properties = item.upgrade_properties()
        sheets = None
        value = files.get(str(uuid))
        if value is not None:
            properties['file_size'] = value['file_size']
            sheets = {
                'external': {
                    'service': 's3',
                    'bucket': 'encode-files',
                    'key': value['s3_file_name'],
                },
            }
        item.update(properties, sheets=sheets)
        if (i + 1) % 100 == 0:
            logger.info('Updated %d', i + 1)
示例#26
0
    def test_get(self, mock_get_package, mock_stringIO):
        request = DummyRequest()
        request.context = DummyResource()
        request.matchdict['product_id'] = 'dummy'
        request.matchdict['package_id'] = 'test'
        import StringIO
        mock_get_package_result = {
            'status': 200,
            'file_contents': mock.Mock(),
            'headers': {
                'content-length': 4,
                'content-type': 'app',
            }
        }
        mock_get_package.return_value = mock_get_package_result
        mock_stringIO_result = mock.Mock()
        mock_stringIO.return_value = mock_stringIO_result
        mock_stringIO_result.read.return_value = 'body'
        view = package_views.PackageViews(request)

        response = view.get()
        self.assertEqual(response.content_length, 4)
        self.assertEqual(response.status_code, 200)
        self.assertIs(type(response), httpexceptions.HTTPOk)
示例#27
0
 def _makeRequest(self, **kw):
     from pyramid.testing import DummyModel
     from pyramid.testing import DummyRequest
     request = DummyRequest(**kw)
     request.context = DummyModel()
     return request
示例#28
0
 def dummy_request(self, cookies={}):
     request = DummyRequest()
     request.context = DummyResource()
     request.signup_userdb = self.signup_userdb
     request.registry.settings = self.settings
     return request
示例#29
0
 def test_it_not_submitted(self):
     request = DummyRequest(dbsession=self.dbsession)
     request.user = User(name='foo', role='editor')
     request.context = PageResource(Page(name='AnotherPage'))
     info = PageAddEditView(request)()
     assert info['context'].page == request.context.page
示例#30
0
 def call(self, context):
     from kotti_tinymce.settings import get_settings_json
     request = DummyRequest()
     request.context = context
     return json.loads(get_settings_json(request))
示例#31
0
 def call(self, context):
     from kotti_tinymce.settings import get_settings_json
     request = DummyRequest()
     request.context = context
     return json.loads(get_settings_json(request))