Commit 60e6685e authored by Serge S. Koval's avatar Serge S. Koval

Added base tests

parent 68e191b5
......@@ -9,6 +9,7 @@ class MockView(base.BaseView):
# Various properties
allow_call = True
allow_access = True
visible = True
@base.expose('/')
def index(self):
......@@ -27,7 +28,13 @@ class MockView(base.BaseView):
def is_accessible(self):
if self.allow_access:
return super(MockView, self).is_accessible()
else:
return False
def is_visible(self):
if self.visible:
return super(MockView, self).is_visible()
return False
......@@ -58,6 +65,12 @@ class MockMethodView(base.BaseView):
def post(self, cls):
return cls.render('method.html', request=request, name='API2')
@base.expose_plugview('/_api/3')
@base.expose_plugview('/_api/4')
class DoubleExpose(MethodView):
def get(self, cls):
return cls.render('method.html', request=request, name='API3')
def test_baseview_defaults():
view = MockView()
......@@ -219,6 +232,21 @@ def test_permissions():
eq_(rv.status_code, 404)
def get_visibility():
app = Flask(__name__)
admin = base.Admin(app)
view = MockView(name='TestMenuItem')
view.visible = False
admin.add_view(view)
client = app.test_client()
rv = client.get('/admin/mockview/')
ok_('TestMenuItem' not in rv.data.decode('utf-8'))
def test_submenu():
app = Flask(__name__)
admin = base.Admin(app)
......@@ -297,3 +325,32 @@ def test_nested_flask_views():
eq_(rv.status_code, 405)
rv = client.put('/admin/mockmethodview/_api/2')
eq_(rv.status_code, 405)
rv = client.get('/admin/mockmethodview/_api/3')
eq_(rv.data, b'GET - API3')
rv = client.get('/admin/mockmethodview/_api/4')
eq_(rv.data, b'GET - API3')
def test_root_mount():
app = Flask(__name__)
admin = base.Admin(app, url='/')
admin.add_view(MockView())
client = app.test_client()
rv = client.get('/mockview/')
eq_(rv.data, b'Success!')
def test_menu_links():
app = Flask(__name__)
admin = base.Admin(app)
admin.add_link(base.MenuLink('TestMenuLink1', endpoint='.index'))
admin.add_link(base.MenuLink('TestMenuLink2', url='http://python.org/'))
client = app.test_client()
rv = client.get('/admin/')
data = rv.data.decode('utf-8')
ok_('TestMenuLink1' in data.decode('utf-8'))
ok_('TestMenuLink2' in data.decode('utf-8'))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment