Ejemplo n.º 1
0
class TestHandlerBase(AsyncHTTPTestCase):
    database = False
    app = Application()

    def get_app(self):
        BaseHandler.get_current_user = Mock(return_value=User("*****@*****.**"))
        self.app.settings['debug'] = False
        return self.app
Ejemplo n.º 2
0
class TestHandlerBase(AsyncHTTPTestCase):
    database = False
    app = Application()

    def get_app(self):
        BaseHandler.get_current_user = Mock(return_value=User("*****@*****.**"))
        self.app.settings['debug'] = False
        return self.app

    def tearDown(self):
        if self.database:
            clean_test_environment()
        super(TestHandlerBase, self).tearDown()

    # helpers from http://www.peterbe.com/plog/tricks-asynchttpclient-tornado
    def get(self, url, data=None, headers=None, doseq=True):
        if data is not None:
            if isinstance(data, dict):
                data = urlencode(data, doseq=doseq)
            if '?' in url:
                url += '&%s' % data
            else:
                url += '?%s' % data
        return self._fetch(url, 'GET', headers=headers)

    def post(self, url, data, headers=None, doseq=True):
        if data is not None:
            if isinstance(data, dict):
                data = urlencode(data, doseq=doseq)
        return self._fetch(url, 'POST', data, headers)

    def patch(self, url, data, headers=None, doseq=True):
        if isinstance(data, dict):
            data = urlencode(data, doseq=doseq)
        if '?' in url:
            url += '&%s' % data
        else:
            url += '?%s' % data
        return self._fetch(url, 'PATCH', data=data, headers=headers)

    def delete(self, url, data=None, headers=None, doseq=True):
        if data is not None:
            if isinstance(data, dict):
                data = urlencode(data, doseq=doseq)
            if '?' in url:
                url += '&%s' % data
            else:
                url += '?%s' % data
        return self._fetch(url, 'DELETE', headers=headers)

    def _fetch(self, url, method, data=None, headers=None):
        self.http_client.fetch(self.get_url(url),
                               self.stop,
                               method=method,
                               body=data,
                               headers=headers)
        return self.wait(timeout=10)
Ejemplo n.º 3
0
class TestHandlerBase(AsyncHTTPTestCase):
    database = False
    conn_handler = SQLConnectionHandler()
    app = Application()

    def get_app(self):
        BaseHandler.get_current_user = Mock(return_value=User("*****@*****.**"))
        return self.app

    def setUp(self):
        if self.database:
            # First, we check that we are not in a production environment
            # It is possible that we are connecting to a production database
            test_db = self.conn_handler.execute_fetchone(
                "SELECT test FROM settings")[0]
            # Or the loaded config file belongs to a production environment
            if not qiita_config.test_environment or not test_db:
                raise RuntimeError("Working in a production environment. Not "
                                   "executing the tests to keep the production"
                                   " database safe.")

            # Drop the schema and rebuild the test database
            drop_and_rebuild_tst_database(self.conn_handler)

        super(TestHandlerBase, self).setUp()

    # helpers from http://www.peterbe.com/plog/tricks-asynchttpclient-tornado
    def get(self, url, data=None, headers=None, doseq=True):
        if data is not None:
            if isinstance(data, dict):
                data = urlencode(data, doseq=doseq)
            if '?' in url:
                url += '&%s' % data
            else:
                url += '?%s' % data
        return self._fetch(url, 'GET', headers=headers)

    def post(self, url, data, headers=None, doseq=True):
        if data is not None:
            if isinstance(data, dict):
                data = urlencode(data, doseq=doseq)
        return self._fetch(url, 'POST', data, headers)

    def _fetch(self, url, method, data=None, headers=None):
        self.http_client.fetch(self.get_url(url), self.stop, method=method,
                               body=data, headers=headers)
        return self.wait()
Ejemplo n.º 4
0
 def get_app(self):
     BaseHandler.get_current_user = Mock(return_value="*****@*****.**")
     self.app = Application()
     return self.app
Ejemplo n.º 5
0
class TestHandlerBase(AsyncHTTPTestCase):
    database = False
    app = Application()

    def get_app(self):
        BaseHandler.get_current_user = Mock(return_value=User("*****@*****.**"))
        self.app.settings['debug'] = False
        return self.app

    @classmethod
    def tearDownClass(cls):
        clean_test_environment()
        r_client.flushdb()

    # helpers from http://www.peterbe.com/plog/tricks-asynchttpclient-tornado
    def get(self, url, data=None, headers=None, doseq=True):
        if data is not None:
            if isinstance(data, dict):
                data = urlencode(data, doseq=doseq)
            if '?' in url:
                url += '&%s' % data
            else:
                url += '?%s' % data
        return self._fetch(url, 'GET', headers=headers)

    def post(self, url, data, headers=None, doseq=True, asjson=False):
        if data is not None:
            if asjson:
                data = json_encode(data)
            elif isinstance(data, dict):
                data = urlencode(data, doseq=doseq)
        return self._fetch(url, 'POST', data, headers)

    def patch(self, url, data, headers=None, doseq=True, asjson=False):
        if asjson:
            data = json_encode(data)
        else:
            if isinstance(data, dict):
                data = urlencode(data, doseq=doseq)
            if '?' in url:
                url += '&%s' % data
            else:
                url += '?%s' % data
        return self._fetch(url, 'PATCH', data=data, headers=headers)

    def delete(self, url, data=None, headers=None, doseq=True):
        if data is not None:
            if isinstance(data, dict):
                data = urlencode(data, doseq=doseq)
            if '?' in url:
                url += '&%s' % data
            else:
                url += '?%s' % data
        return self._fetch(url, 'DELETE', headers=headers)

    def _fetch(self, url, method, data=None, headers=None):
        self.http_client.fetch(self.get_url(url),
                               self.stop,
                               method=method,
                               body=data,
                               headers=headers)
        # there is a random error in travis where a test takes longer than
        # expected thus using 25 seconds
        return self.wait(timeout=25)