コード例 #1
0
ファイル: testing.py プロジェクト: rkx-forks/Kotti
def setUpFunctional(global_config=None, **settings):
    from kotti import main
    from zope.testbrowser.wsgi import Browser
    from webtest import TestApp

    tearDown()

    _settings = {
        "sqlalchemy.url": testing_db_url(),
        "kotti.secret": "secret",
        "kotti.site_title": "Website des Kottbusser Tors",  # for mailing
        "kotti.populators": "kotti.testing._populator",
        "mail.default_sender": "kotti@localhost",
        "pyramid.includes": "kotti.testing._functional_includeme",
    }
    _settings.update(settings)

    host, port = BASE_URL.split(":")[-2:]
    app = main({}, **_settings)
    Browser.pyquery = property(_zope_testbrowser_pyquery)

    return dict(
        Browser=lambda: Browser("http://{}:{}/".format(host[2:], int(port)),
                                wsgi_app=app),
        browser=Browser("http://{}:{}/".format(host[2:], int(port)),
                        wsgi_app=app),
        test_app=TestApp(app),
    )
コード例 #2
0
ファイル: testing.py プロジェクト: xiang12383/Kotti
def setUpFunctional(global_config=None, **settings):
    from kotti import main
    from zope.testbrowser.wsgi import Browser
    from webtest import TestApp

    tearDown()

    _settings = {
        'sqlalchemy.url': testing_db_url(),
        'kotti.secret': 'secret',
        'kotti.site_title': 'Website des Kottbusser Tors',  # for mailing
        'kotti.populators': 'kotti.testing._populator',
        'mail.default_sender': 'kotti@localhost',
        'pyramid.includes': 'kotti.testing._functional_includeme',
    }
    _settings.update(settings)

    host, port = BASE_URL.split(':')[-2:]
    app = main({}, **_settings)
    Browser.pyquery = property(_zope_testbrowser_pyquery)

    return dict(
        Browser=lambda: Browser('http://{}:{}/'.format(host[2:], int(port)),
                                wsgi_app=app),
        browser=Browser('http://{}:{}/'.format(host[2:], int(port)),
                        wsgi_app=app),
        test_app=TestApp(app),
    )
コード例 #3
0
ファイル: test_receiver.py プロジェクト: ulif/megrok.paypal
 def test_use_test_browser(self):
     # TEMPORARY test. Make sure we can use a virtual browser.
     app = SampleApp()
     self.layer.getRootFolder()['app'] = app
     browser = Browser()
     browser.open("http://localhost/app/@@foo")
     assert browser.contents == 'Hi from SampleAppView, VARS: []'
コード例 #4
0
ファイル: __init__.py プロジェクト: rkx-forks/Kotti
def browser(db_session, request, setup_app):
    """returns an instance of `zope.testbrowser`.  The `kotti.testing.user`
    pytest marker (or `pytest.mark.user`) can be used to pre-authenticate
    the browser with the given login name: `@user('admin')`.
    """
    from zope.testbrowser.wsgi import Browser
    from kotti.testing import BASE_URL

    host, port = BASE_URL.split(":")[-2:]
    browser = Browser("http://{}:{}/".format(host[2:], int(port)), wsgi_app=setup_app)
    marker = request.node.get_closest_marker("user")
    if marker:
        # set auth cookie directly on the browser instance...
        from pyramid.security import remember
        from pyramid.testing import DummyRequest

        login = marker.args[0]
        environ = dict(HTTP_HOST=host[2:])
        for _, value in remember(DummyRequest(environ=environ), login):
            cookie, _ = value.split(";", 1)
            name, value = cookie.split("=")
            if name in browser.cookies:
                del browser.cookies[name]
            browser.cookies.create(name, value.strip('"'), path="/")
    return browser
コード例 #5
0
ファイル: test_receiver.py プロジェクト: ulif/megrok.paypal
 def test_post_data(self):
     # TEMPORARY test. Make sure we can post data.
     app = SampleApp()
     self.layer.getRootFolder()['app'] = app
     browser = Browser()
     browser.post("http://localhost/app/@@foo", "x=1&y=2")
     assert browser.contents == (
         "Hi from SampleAppView, VARS: [(u'x', u'1'), (u'y', u'2')]")
コード例 #6
0
ファイル: test_receiver.py プロジェクト: ulif/megrok.paypal
 def test_index_returns_empty_body(self):
     # if we deliver normal data we will return with an empty doc.
     receiver = PayPalIPNReceiver()
     receiver.validation_url = ''
     self.layer.getRootFolder()['app'] = receiver
     browser = Browser()
     browser.open('http://localhost/app/@@index')
     assert browser.contents == ''
コード例 #7
0
ファイル: test_receiver.py プロジェクト: ulif/megrok.paypal
 def test_index_returns_200_Ok(self):
     # if we deliver normal data we will get a 200 Ok.
     receiver = PayPalIPNReceiver()
     receiver.validation_url = ''
     self.layer.getRootFolder()['app'] = receiver
     browser = Browser()
     browser.open('http://localhost/app/@@index')
     assert browser.headers.get("status") == "200 Ok"
コード例 #8
0
ファイル: test_receiver.py プロジェクト: ulif/megrok.paypal
 def test_index_is_default_view(self):
     # the index view is called by default.
     receiver = ModifiedReceiver()
     receiver.validation_url = ''
     self.layer.getRootFolder()['app'] = receiver
     browser = Browser()
     # we do not give a view name here.
     browser.post("http://localhost/app", "got_it=1")
     assert receiver.call_args == 'got_it=1'
コード例 #9
0
ファイル: test_receiver.py プロジェクト: ulif/megrok.paypal
 def test_index_calls_store_notification(self):
     # the index view informs the receiver.
     receiver = ModifiedReceiver()
     receiver.validation_url = ''
     self.layer.getRootFolder()['app'] = receiver
     browser = Browser()
     browser.post("http://localhost/app/@@index", "y=1&x=2")
     assert receiver.call_args == 'y=1&x=2'
     browser.post("http://localhost/app/@@index", "x=1&y=2")
     assert receiver.call_args == 'x=1&y=2'
コード例 #10
0
ファイル: test_receiver.py プロジェクト: ulif/megrok.paypal
 def test_can_set_content_type(self):
     # TEMPORARY test. We can set the content type of a post request.
     app = SampleApp()
     self.layer.getRootFolder()['app'] = app
     browser = Browser()
     browser.handleErrors = False
     browser.post("http://localhost/app/@@bar", "x=1&y=2",
                  "application/x-javascript")
     assert browser.contents == ("INPUT: x=1&y=2 "
                                 "CONTENT-TYPE application/x-javascript")
コード例 #11
0
ファイル: test_receiver.py プロジェクト: ulif/megrok.paypal
 def test_can_access_post_data_line(self):
     # TEMPORARY test. We can access the body line with the post data.
     app = SampleApp()
     self.layer.getRootFolder()['app'] = app
     browser = Browser()
     browser.handleErrors = False
     browser.post("http://localhost/app/@@bar", "x=1&y=2")
     assert browser.contents == (
         "INPUT: x=1&y=2 "
         "CONTENT-TYPE application/x-www-form-urlencoded")
     browser.post("http://localhost/app/@@bar", "y=1&x=2")
     assert browser.contents == (
         "INPUT: y=1&x=2 "
         "CONTENT-TYPE application/x-www-form-urlencoded")
コード例 #12
0
ファイル: test_receiver.py プロジェクト: ulif/megrok.paypal
 def test_notify_view_validation_valid(self):
     # we can get successful validations with notify
     receiver = PayPalIPNReceiver()
     receiver.validation_url = self.layer.server.url
     root = self.layer.getRootFolder()
     root['app'] = receiver
     browser = Browser()
     browser.post('http://localhost/app/@@index', 'x=2')
     sent_body = self.layer.server.last_request_body
     assert browser.headers.get("status") == "200 Ok"
     assert sent_body == 'cmd=_notify-validate&x=2'
     assert len(list(receiver.keys())) == 1
     notification = receiver[receiver.keys()[0]]
     assert notification.final_verdict == u'VERIFIED'
コード例 #13
0
ファイル: conftest.py プロジェクト: suryakant54321/skylines
def browser(app):
    """
    A ``zope.testbrowser.wsgi.Browser`` instance for integration testing.
    """
    return Browser('http://localhost/', wsgi_app=app.wsgi_app)
コード例 #14
0
ファイル: __init__.py プロジェクト: imclab/skylines
    def setUp(self):
        """Method called by nose before running each test"""
        clean_db_and_bootstrap()

        self.browser = Browser('http://localhost/', wsgi_app=app.wsgi_app)
コード例 #15
0
from zope.testbrowser.ftests.wsgitestapp import WSGITestApplication
from zope.testbrowser.wsgi import Browser

wsgi_app = WSGITestApplication()

browser = Browser('http://localhost/@@/testbrowser/simple.html',
                  wsgi_app=wsgi_app)
print(browser.url)
コード例 #16
0
 def test_bla(self):
     browser = Browser()
コード例 #17
0
 def setup_browser(self, frontend):
     self.browser = Browser('http://localhost/', wsgi_app=frontend.wsgi_app)