def test_registry_by_wrong_name(self, registry_blok):
        def __get_db_name(request):
            return 'wrong_db_name'

        Configuration.update(get_db_name=__get_db_name)
        webserver = init_web_server(self.add_route_and_views)
        res = webserver.get('/test/', status=200)
        assert not res.body
Exemple #2
0
 def test_before_and_after_install_blok(self, registry_blok):
     self.installed_blok = 'auth'
     webserver = init_web_server(self.add_route_and_views)
     webserver.get('/test/', status=404)
     registry_blok.upgrade(install=['auth'])
     self.assertOK(webserver)
     registry_blok.upgrade(uninstall=['auth'])
     webserver.get('/test/', status=404)
Exemple #3
0
    def test_need_anyblok_registry_ok2(self, registry_blok):
        self.need_anyblok_registry = False

        def __get_db_name(request):
            return 'wrong_db_name'

        Configuration.update(get_db_name=__get_db_name)
        webserver = init_web_server(self.add_route_and_views2)
        webserver.get('/test/', status=200)
 def test_registry_by_default_method(self, registry_blok):
     webserver = init_web_server(add_route_and_views)
     res = webserver.get('/test/', status=200)
     assert Configuration.get('db_name') == res.body.decode('utf8')
     webserver.get('/test/login/')
     res = webserver.get('/test/', status=200)
     assert 'other_db_name' == res.body.decode('utf8')
     webserver.get('/test/logout/')
     res = webserver.get('/test/', status=200)
     assert Configuration.get('db_name') == res.body.decode('utf8')
Exemple #5
0
    def test_registry_get_date(self):
        def get_date(request):
            return {'date': date(2017, 10, 1)}

        def add_route_and_views(config):
            config.add_route('dbname', '/test/')
            config.add_view(get_date, route_name='dbname', renderer='json')
            json_renderer = JSON()
            json_renderer.add_adapter(date, date_adapter)
            config.add_renderer('json', json_renderer)

        webserver = init_web_server(add_route_and_views)
        res = webserver.get('/test/', status=200)
        assert res.json_body['date'] == date_adapter(date(2017, 10, 1), None)
    def test_registry_by_path(self, registry_blok):
        def __get_db_name(request):
            return request.matchdict['dbname']

        def add_route_and_views(config):
            config.add_route('dbname', '/test/{dbname}/')
            config.add_view(_get_db_name, route_name='dbname')

        Configuration.update(get_db_name=__get_db_name)
        webserver = init_web_server(add_route_and_views)
        res = webserver.get('/test/%s/' % Configuration.get('db_name'),
                            status=200)

        assert Configuration.get('db_name') == res.body.decode('utf8')
        res = webserver.get('/test/wrong_db_name/', status=200)
        assert not res.body
Exemple #7
0
    def test_registry_get_decimal(self):

        val = Decimal('100.12')

        def get_bytes(request):
            return {'decimal': val}

        def add_route_and_views(config):
            config.add_route('dbname', '/test/')
            config.add_view(get_bytes, route_name='dbname', renderer='json')
            json_renderer = JSON()
            json_renderer.add_adapter(Decimal, decimal_adapter)
            config.add_renderer('json', json_renderer)

        webserver = init_web_server(add_route_and_views)
        res = webserver.get('/test/', status=200)
        assert res.json_body['decimal'] == decimal_adapter(val, None)
Exemple #8
0
    def test_registry_get_bytes(self):

        val = urandom(100)

        def get_bytes(request):
            return {'bytes': val}

        def add_route_and_views(config):
            config.add_route('dbname', '/test/')
            config.add_view(get_bytes, route_name='dbname', renderer='json')
            json_renderer = JSON()
            json_renderer.add_adapter(bytes, bytes_adapter)
            config.add_renderer('json', json_renderer)

        webserver = init_web_server(add_route_and_views)
        res = webserver.get('/test/', status=200)
        assert res.json_body['bytes'] == bytes_adapter(val, None)
Exemple #9
0
    def test_registry_get_uuid(self):

        uuid = uuid1()

        def get_uuid(request):
            return {'uuid': uuid}

        def add_route_and_views(config):
            config.add_route('dbname', '/test/')
            config.add_view(get_uuid, route_name='dbname', renderer='json')
            json_renderer = JSON()
            json_renderer.add_adapter(UUID, uuid_adapter)
            config.add_renderer('json', json_renderer)

        webserver = init_web_server(add_route_and_views)
        res = webserver.get('/test/', status=200)
        assert res.json_body['uuid'] == uuid_adapter(uuid, None)
Exemple #10
0
 def test_need_anyblok_registry_ok(self, registry_blok):
     self.need_anyblok_registry = True
     webserver = init_web_server(self.add_route_and_views2)
     webserver.get('/test/', status=200)
Exemple #11
0
 def test_uninstalled_blok(self, registry_blok):
     self.installed_blok = 'anyblok-io'
     webserver = init_web_server(self.add_route_and_views)
     webserver.get('/test/', status=404)
Exemple #12
0
 def test_installed_blok(self, registry_blok):
     self.installed_blok = 'anyblok-core'
     webserver = init_web_server(self.add_route_and_views)
     self.assertOK(webserver)
    def test_registry_get_timedelta(self):
        def get_timedelta(request):
            return {
                'timedelta':
                timedelta(days=1,
                          hours=4,
                          minutes=56,
                          seconds=3710,
                          milliseconds=4000,
                          microseconds=500)
            }

        def add_route_and_views(config):
            config.add_route('dbname', '/test/')
            config.add_view(get_timedelta,
                            route_name='dbname',
                            renderer='json')
            json_renderer = JSON()
            json_renderer.add_adapter(timedelta, timedelta_adapter_factory())
            config.add_renderer('json', json_renderer)

        webserver = init_web_server(add_route_and_views)
        res = webserver.get('/test/', status=200)

        assert res.json_body['timedelta'] == timedelta(
            days=1,
            hours=4,
            minutes=56,
            seconds=3710,
            milliseconds=4000,
            microseconds=500).total_seconds()

        # This part is aimed at testing that the different modes implemented on
        # timedelta adapter are behaving as intented
        delta = timedelta(weeks=1,
                          days=3,
                          hours=15,
                          minutes=3,
                          seconds=45,
                          milliseconds=354,
                          microseconds=768)

        assert round(
            timedelta_adapter_factory(TimeDeltaModes.SECONDS)(delta, None),
            8) == 918225.354768
        assert round(
            timedelta_adapter_factory(TimeDeltaModes.MICROSECONDS)(delta,
                                                                   None),
            8) == 918225354768
        assert round(
            timedelta_adapter_factory(TimeDeltaModes.MILLISECONDS)(delta,
                                                                   None),
            8) == 918225354.768
        assert round(
            timedelta_adapter_factory(TimeDeltaModes.MINUTES)(delta, None),
            8) == 15303.7559128
        assert round(
            timedelta_adapter_factory(TimeDeltaModes.HOURS)(delta, None),
            8) == 255.06259855
        assert round(
            timedelta_adapter_factory(TimeDeltaModes.DAYS)(delta, None),
            8) == 10.62760827
        assert round(
            timedelta_adapter_factory(TimeDeltaModes.WEEKS)(delta, None),
            8) == 1.51822975

        with pytest.raises(ValueError):
            timedelta_adapter_factory("not a valid mode")(delta, None)