コード例 #1
0
def testAccessWebRoot(server, db):
    """
    Requests the webroot and tests the existence of several
    elements in the returned html
    """
    # Check webroot default settings
    defaultEmailAddress = Setting().getDefault(SettingKey.CONTACT_EMAIL_ADDRESS)
    defaultBrandName = Setting().getDefault(SettingKey.BRAND_NAME)
    resp = server.request(path='/', method='GET', isJson=False, prefix='')
    assertStatusOk(resp)
    body = getResponseBody(resp)
    assert WebrootBase._escapeJavascript(defaultEmailAddress) in body
    assert '<title>%s</title>' % defaultBrandName in body

    assert 'girder_app.min.js' in body
    assert 'girder_lib.min.js' in body

    # Change webroot settings
    Setting().set(SettingKey.CONTACT_EMAIL_ADDRESS, '*****@*****.**')
    Setting().set(SettingKey.BRAND_NAME, 'FooBar')
    resp = server.request(path='/', method='GET', isJson=False, prefix='')
    assertStatusOk(resp)
    body = getResponseBody(resp)
    assert WebrootBase._escapeJavascript('*****@*****.**') in body
    assert '<title>FooBar</title>' in body

    # Remove webroot settings
    Setting().unset(SettingKey.CONTACT_EMAIL_ADDRESS)
    Setting().unset(SettingKey.BRAND_NAME)
    resp = server.request(path='/', method='GET', isJson=False, prefix='')
    assertStatusOk(resp)
    body = getResponseBody(resp)
    assert WebrootBase._escapeJavascript(defaultEmailAddress) in body
    assert '<title>%s</title>' % defaultBrandName in body
コード例 #2
0
def testRouteTableBehavior(server, admin):
    Setting().set(SettingKey.ROUTE_TABLE, {
        GIRDER_ROUTE_ID: '/',
        GIRDER_STATIC_ROUTE_ID: '/static',
        'has_webroot': '/has_webroot'
    })

    # /has_webroot should serve our plugin webroot
    resp = server.request('/has_webroot', prefix='', isJson=False, appPrefix='/has_webroot')
    assertStatusOk(resp)
    assert 'some webroot' in getResponseBody(resp)

    # girder should be at /
    resp = server.request('/', prefix='', isJson=False)
    assertStatusOk(resp)
    assert 'g-global-info-apiroot' in getResponseBody(resp)

    table = Setting().get(SettingKey.ROUTE_TABLE)
    assert 'has_webroot' in table
    assert table['has_webroot'] == '/has_webroot'

    # Disabling the plugin should remove it from the route table
    assertStatusOk(server.request('/system/plugins', method='PUT', user=admin, params={
        'plugins': json.dumps([])
    }))
    table = Setting().get(SettingKey.ROUTE_TABLE)
    assert 'has_webroot' not in table
コード例 #3
0
ファイル: test_route_table.py プロジェクト: xinlaoda/girder
def testRouteTableBehavior(server, admin):
    Setting().set(
        SettingKey.ROUTE_TABLE, {
            GIRDER_ROUTE_ID: '/',
            GIRDER_STATIC_ROUTE_ID: '/static',
            'has_webroot': '/has_webroot'
        })

    # /has_webroot should serve our plugin webroot
    resp = server.request('/has_webroot',
                          prefix='',
                          isJson=False,
                          appPrefix='/has_webroot')
    assertStatusOk(resp)
    assert 'some webroot' in getResponseBody(resp)

    # girder should be at /
    resp = server.request('/', prefix='', isJson=False)
    assertStatusOk(resp)
    assert 'g-global-info-apiroot' in getResponseBody(resp)

    table = Setting().get(SettingKey.ROUTE_TABLE)
    assert 'has_webroot' in table
    assert table['has_webroot'] == '/has_webroot'

    # Disabling the plugin should remove it from the route table
    assertStatusOk(
        server.request('/system/plugins',
                       method='PUT',
                       user=admin,
                       params={'plugins': json.dumps([])}))
    table = Setting().get(SettingKey.ROUTE_TABLE)
    assert 'has_webroot' not in table
コード例 #4
0
ファイル: test_webroot.py プロジェクト: girder/girder
def testWebRootProperlyHandlesCustomStaticPublicPath(server):
    cherrypy.config['server']['static_public_path'] = 'http://my-cdn-url.com/static'

    resp = server.request(path='/', method='GET', isJson=False, prefix='')
    assertStatusOk(resp)
    body = getResponseBody(resp)

    assert 'href="http://my-cdn-url.com/static/built/Girder_Favicon.png"' in body

    # Same assertion should hold true for Swagger
    resp = server.request(path='/', method='GET', isJson=False)
    assertStatusOk(resp)
    body = getResponseBody(resp)

    assert 'href="http://my-cdn-url.com/static/built/Girder_Favicon.png"' in body

    cherrypy.config['server']['static_public_path'] = '/static'
コード例 #5
0
ファイル: test_custom_root.py プロジェクト: tymiao1220/girder
def testServerInfoInErrorPage(server):
    # For security, we want to ensure cherrypy does not appear in server info
    resp = server.request('/girder/api/v1', prefix='', isJson=False)
    assertStatus(resp, 404)
    body = getResponseBody(resp).lower()
    server = resp.headers['Server'].lower()
    assert 'cherrypy' not in body + server
    assert 'girder' in body
    assert 'girder' in server
コード例 #6
0
def testWebRootProperlyHandlesCustomStaticPublicPath(server):
    cherrypy.config['server'][
        'static_public_path'] = 'http://my-cdn-url.com/static'

    resp = server.request(path='/', method='GET', isJson=False, prefix='')
    assertStatusOk(resp)
    body = getResponseBody(resp)

    assert 'href="http://my-cdn-url.com/static/built/Girder_Favicon.png"' in body

    # Same assertion should hold true for Swagger
    resp = server.request(path='/', method='GET', isJson=False)
    assertStatusOk(resp)
    body = getResponseBody(resp)

    assert 'href="http://my-cdn-url.com/static/built/Girder_Favicon.png"' in body

    cherrypy.config['server']['static_public_path'] = '/static'
コード例 #7
0
ファイル: test_custom_root.py プロジェクト: girder/girder
def testServerInfoInErrorPage(server):
    # For security, we want to ensure cherrypy does not appear in server info
    resp = server.request('/girder/api/v1', prefix='', isJson=False)
    assertStatus(resp, 404)
    body = getResponseBody(resp).lower()
    server = resp.headers['Server'].lower()
    assert 'cherrypy' not in body + server
    assert 'girder' in body
    assert 'girder' in server
コード例 #8
0
def testWebRootProperlyHandlesStaticRouteUrls(server, db):
    Setting().set(SettingKey.ROUTE_TABLE, {
        GIRDER_ROUTE_ID: '/',
        GIRDER_STATIC_ROUTE_ID: 'http://my-cdn-url.com/static'
    })

    resp = server.request(path='/', method='GET', isJson=False, prefix='')
    assertStatusOk(resp)
    body = getResponseBody(resp)

    assert 'href="http://my-cdn-url.com/static/img/Girder_Favicon.png"' in body

    # Same assertion should hold true for Swagger
    resp = server.request(path='/', method='GET', isJson=False)
    assertStatusOk(resp)
    body = getResponseBody(resp)

    assert 'href="http://my-cdn-url.com/static/img/Girder_Favicon.png"' in body
コード例 #9
0
ファイル: test_route_table.py プロジェクト: girder/girder
def testRouteTableBehavior(server, admin):
    Setting().set(SettingKey.ROUTE_TABLE, {
        GIRDER_ROUTE_ID: '/',
        'has_webroot': '/has_webroot'
    })

    # /has_webroot should serve our plugin webroot
    resp = server.request('/has_webroot', prefix='', isJson=False, appPrefix='/has_webroot')
    assertStatusOk(resp)
    assert 'some webroot' in getResponseBody(resp)

    # girder should be at /
    resp = server.request('/', prefix='', isJson=False)
    assertStatusOk(resp)
    assert 'g-global-info-apiroot' in getResponseBody(resp)

    table = Setting().get(SettingKey.ROUTE_TABLE)
    assert 'has_webroot' in table
    assert table['has_webroot'] == '/has_webroot'
コード例 #10
0
ファイル: test_api_docs.py プロジェクト: girder/girder
def testApiDocsContent(server):
    """
    Test content of API documentation page.
    """
    resp = server.request(path='/api/v1', method='GET', isJson=False, prefix='')
    assertStatusOk(resp)
    body = getResponseBody(resp)

    assert 'Girder REST API Documentation' in body
    assert 'This is not a sandbox' in body
    assert 'id="swagger-ui-container"' in body
コード例 #11
0
ファイル: test_route_table.py プロジェクト: wphicks/girder
def testRouteTableBehavior(server, admin):
    Setting().set(SettingKey.ROUTE_TABLE, {
        GIRDER_ROUTE_ID: '/',
        'has_webroot': '/has_webroot'
    })

    # /has_webroot should serve our plugin webroot
    resp = server.request('/has_webroot',
                          prefix='',
                          isJson=False,
                          appPrefix='/has_webroot')
    assertStatusOk(resp)
    assert 'some webroot' in getResponseBody(resp)

    # girder should be at /
    resp = server.request('/', prefix='', isJson=False)
    assertStatusOk(resp)
    assert 'g-global-info-apiroot' in getResponseBody(resp)

    table = Setting().get(SettingKey.ROUTE_TABLE)
    assert 'has_webroot' in table
    assert table['has_webroot'] == '/has_webroot'
コード例 #12
0
ファイル: test_api_docs.py プロジェクト: girder/girder
def testApiDocsCustomContent(server):
    """
    Test content of API documentation page that's customized by a plugin.
    """
    resp = server.request(path='/api/v1', method='GET', isJson=False, prefix='')
    assertStatusOk(resp)
    body = getResponseBody(resp)

    assert 'Girder REST API Documentation' not in body
    assert 'This is not a sandbox' not in body

    assert 'Girder Web Application Programming Interface' in body
    assert '<p>Custom API description</p>' in body
    assert 'id="swagger-ui-container"' in body
コード例 #13
0
def testApiDocsContent(server):
    """
    Test content of API documentation page.
    """
    resp = server.request(path='/api/v1',
                          method='GET',
                          isJson=False,
                          prefix='')
    assertStatusOk(resp)
    body = getResponseBody(resp)

    assert 'Girder REST API Documentation' in body
    assert 'This is not a sandbox' in body
    assert 'id="swagger-ui-container"' in body
コード例 #14
0
ファイル: test_docker.py プロジェクト: dregula/slicer_cli_web
def testDockerAdd(images, server):
    # try to cache a good image to the mongo database
    img_name = 'girder/slicer_cli_web:small'
    images.assertNoImages()
    images.addImage(img_name, JobStatus.SUCCESS)
    images.imageIsLoaded(img_name, True)
    # If checked without a user, we should get an empty list
    resp = server.request(path='/slicer_cli_web/docker_image')
    assertStatus(resp, 200)
    assert json.loads(getResponseBody(resp)) == {}
    images.endpointsExist(img_name, ['Example1', 'Example2', 'Example3'],
                          ['NotAnExample'])
    images.deleteImage(img_name, True)
    images.assertNoImages()
コード例 #15
0
def testApiDocsCustomContent(server):
    """
    Test content of API documentation page that's customized by a plugin.
    """
    resp = server.request(path='/api/v1',
                          method='GET',
                          isJson=False,
                          prefix='')
    assertStatusOk(resp)
    body = getResponseBody(resp)

    assert 'Girder REST API Documentation' not in body
    assert 'This is not a sandbox' not in body

    assert 'Girder Web Application Programming Interface' in body
    assert '<p>Custom API description</p>' in body
    assert 'id="swagger-ui-container"' in body
コード例 #16
0
ファイル: test_docker.py プロジェクト: dregula/slicer_cli_web
def testXmlEndpoint(images, server, admin):
    # loads an image and attempts to run an arbitrary xml endpoint

    img_name = 'girder/slicer_cli_web:small'
    images.addImage(img_name, JobStatus.SUCCESS)
    images.imageIsLoaded(img_name, True)

    name, tag = splitName(img_name)
    data = images.getEndpoint()
    for tag in six.itervalues(data):
        for cli in six.itervalues(tag):
            for info in six.itervalues(cli):
                route = info['xmlspec']
                resp = server.request(path=route, user=admin, isJson=False)
                assertStatus(resp, 200)
                xmlString = getResponseBody(resp)
                # TODO validate with xml schema
                assert xmlString != ''
    images.deleteImage(
        img_name,
        True,
    )
コード例 #17
0
ファイル: test_docker.py プロジェクト: dregula/slicer_cli_web
    def getEndpoint(self):
        resp = self.server.request(path='/slicer_cli_web/docker_image',
                                   user=self.admin)
        assertStatus(resp, 200)

        return json.loads(getResponseBody(resp))
コード例 #18
0
ファイル: test_custom_root.py プロジェクト: girder/girder
def testPluginRoutesForHumans(server, route, text):
    resp = server.request(route, prefix='', isJson=False)
    assertStatusOk(resp)
    assert text in getResponseBody(resp)
コード例 #19
0
ファイル: test_custom_root.py プロジェクト: tymiao1220/girder
def testPluginRoutesForHumans(server, route, text):
    resp = server.request(route, prefix='', isJson=False)
    assertStatusOk(resp)
    assert text in getResponseBody(resp)