Beginning of the symbols from controller

Ref #496
This commit is contained in:
Julien Duponchelle
2016-06-27 18:33:42 +02:00
parent deb97f8ec0
commit b66f7daa28
51 changed files with 21580 additions and 0 deletions

View File

@ -0,0 +1,33 @@
#!/usr/bin/env python
#
# Copyright (C) 2016 GNS3 Technologies Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
from gns3server.controller.symbols import Symbols
from gns3server.utils.get_resource import get_resource
def test_list():
symbols = Symbols()
assert {
'symbol_id': ':/symbols/firewall.svg',
'url': '/static/builtin_symbols/firewall.svg',
'filename': 'firewall.svg',
'builtin': True
} in symbols.list()
assert symbols

View File

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2015 GNS3 Technologies Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from gns3server.config import Config
def test_symbols(http_controller):
response = http_controller.get('/symbols', example=True)
assert response.status == 200
assert {
'symbol_id': ':/symbols/firewall.svg',
'url': '/static/builtin_symbols/firewall.svg',
'filename': 'firewall.svg',
'builtin': True
} in response.json

View File

@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2015 GNS3 Technologies Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import aiohttp
import os
from unittest.mock import patch
def test_get(http_root):
response = http_root.get('/static/builtin_symbols/firewall.svg')
assert response.status == 200
assert response.headers['CONTENT-LENGTH'] == '9381'
assert response.headers['CONTENT-TYPE'] == 'image/svg+xml'
assert '</svg>' in response.html
response = http_root.get('/static/builtin_symbols/../main.py')
assert response.status == 404
response = http_root.get('/static/builtin_symbols/404.png')
assert response.status == 404