diff --git a/Makefile b/Makefile
index 42b498c..da50505 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,12 @@
 build: clean prepare
-	python3 setup.py sdist bdist_wheel
+	python3.6 setup.py sdist bdist_wheel
 	ls -l dist/
 
 clean:
 	rm -rf build/ dist/ *.egg-info/ kytos/web-ui-*
 
 prepare:
-	pip3 install --upgrade pip setuptools wheel twine
+	pip3.6 install --upgrade pip setuptools wheel twine
 
 testupload: build
 	twine upload -r pypitest dist/*
diff --git a/kytos/core/api_server.py b/kytos/core/api_server.py
index b14d80d..f10c3b0 100644
--- a/kytos/core/api_server.py
+++ b/kytos/core/api_server.py
@@ -12,7 +12,7 @@ from http import HTTPStatus
 from urllib.error import HTTPError, URLError
 from urllib.request import urlopen, urlretrieve
 
-from flask import Flask, jsonify, request, send_file
+from flask import Blueprint, Flask, jsonify, request, send_file
 from flask_cors import CORS
 from flask_socketio import SocketIO, join_room, leave_room
 from werkzeug.exceptions import HTTPException
@@ -98,7 +98,8 @@ class APIServer:
                       stacklevel=2)
         if url.startswith('/'):
             url = url[1:]
-        self._start_endpoint(f'/kytos/{url}', function, methods=methods)
+        self._start_endpoint(self.app, f'/kytos/{url}', function,
+                             methods=methods)
 
     def start_api(self):
         """Start this APIServer instance API.
@@ -123,7 +124,8 @@ class APIServer:
 
         Not used by NApps, but controller.
         """
-        self._start_endpoint(self._CORE_PREFIX + rule, function, **options)
+        self._start_endpoint(self.app, self._CORE_PREFIX + rule, function,
+                             **options)
 
     def _register_web_ui(self):
         """Register routes to the admin-ui homepage."""
@@ -291,15 +293,27 @@ class APIServer:
     def register_napp_endpoints(self, napp):
         """Add all NApp REST endpoints with @rest decorator.
 
+        We are using Flask Blueprints to register these endpoints. Blueprints
+        are essentially the Flask equivalent of Python modules and are used to
+        keep related logic and assets grouped and separated from one another.
+
         URLs will be prefixed with ``/api/{username}/{napp_name}/``.
 
         Args:
             napp (Napp): Napp instance to register new endpoints.
         """
+        # Create a Flask Blueprint for a specific NApp
+        napp_blueprint = Blueprint(napp.napp_id, __name__)
+
+        # Start all endpoints for this NApp
         for function in self._get_decorated_functions(napp):
             for rule, options in function.route_params:
                 absolute_rule = self.get_absolute_rule(rule, napp)
-                self._start_endpoint(absolute_rule, function, **options)
+                self._start_endpoint(napp_blueprint, absolute_rule, function,
+                                     **options)
+
+        # Register this Flask Blueprint in the Flask App
+        self.app.register_blueprint(napp_blueprint)
 
     @staticmethod
     def _get_decorated_functions(napp):
@@ -323,14 +337,14 @@ class APIServer:
 
     # END decorator methods
 
-    def _start_endpoint(self, rule, function, **options):
+    def _start_endpoint(self, app, rule, function, **options):
         """Start ``function``'s endpoint.
 
         Forward parameters to ``Flask.add_url_rule`` mimicking Flask
         ``@route`` decorator.
         """
         endpoint = options.pop('endpoint', None)
-        self.app.add_url_rule(rule, endpoint, function, **options)
+        app.add_url_rule(rule, endpoint, function, **options)
         self.log.info('Started %s - %s', rule,
                       ', '.join(options.get('methods', self.DEFAULT_METHODS)))
 
@@ -357,6 +371,9 @@ class APIServer:
             self.app.url_map._rules.pop(index)
             # pylint: enable=protected-access
 
+        # Remove the Flask Blueprint of this NApp from the Flask App
+        self.app.blueprints.pop(napp.napp_id)
+
         self.log.info('The Rest endpoints from %s were disabled.', prefix)
 
     def register_core_napp_services(self):
diff --git a/requirements/dev.txt b/requirements/dev.txt
index 0efbe77..5feeef4 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -2,69 +2,50 @@
 # This file is autogenerated by pip-compile
 # To update, run:
 #
-#    pip-compile --output-file=requirements/dev.txt requirements/dev.in requirements/run.txt
+#    pip-compile --output-file=requirements/dev.txt requirements/dev.in
 #
 -e git+git://github.com/kytos/sphinx-theme.git#egg=kytos-sphinx-theme  # via -r requirements/dev.in
--e git+git://github.com/kytos/python-openflow.git#egg=python-openflow  # via -r requirements/dev.in, -r requirements/run.txt
+-e git+git://github.com/kytos/python-openflow.git#egg=python-openflow  # via -r requirements/dev.in
 alabaster==0.7.12         # via sphinx
 appdirs==1.4.3            # via virtualenv
-appnope==0.1.0            # via -r requirements/run.txt
 argh==0.26.2              # via sphinx-autobuild
 astroid==2.3.3            # via pylint
 attrs==19.3.0             # via pytest
 babel==2.8.0              # via sphinx
-backcall==0.1.0           # via -r requirements/run.txt, ipython
 certifi==2019.11.28       # via requests
 chardet==3.0.4            # via requests
-click==7.1.1              # via -r requirements/run.txt, flask, pip-tools
+click==7.1.1              # via pip-tools
 coverage==5.0.4           # via -r requirements/dev.in
-decorator==4.4.2          # via -r requirements/run.txt, ipython, traitlets
 distlib==0.3.0            # via virtualenv
 docopt==0.6.2             # via yala
-docutils==0.16            # via -r requirements/run.txt, python-daemon, sphinx
+docutils==0.16            # via sphinx
 filelock==3.0.12          # via tox, virtualenv
-flask-cors==3.0.8         # via -r requirements/run.txt
-flask-socketio==4.2.1     # via -r requirements/run.txt
-flask==1.1.2              # via -r requirements/run.txt, flask-cors, flask-socketio
 idna==2.9                 # via requests
 imagesize==1.2.0          # via sphinx
-ipython-genutils==0.2.0   # via -r requirements/run.txt, traitlets
-ipython==7.13.0           # via -r requirements/run.txt
+importlib-metadata==1.6.0  # via importlib-resources, pluggy, pytest, tox, virtualenv
+importlib-resources==1.4.0  # via virtualenv
 isort==4.3.21             # via pylint, yala
-itsdangerous==1.1.0       # via -r requirements/run.txt, flask
-janus==0.4.0              # via -r requirements/run.txt
-jedi==0.16.0              # via -r requirements/run.txt, ipython
-jinja2==2.11.1            # via -r requirements/run.txt, flask, sphinx
+jinja2==2.11.1            # via sphinx
 lazy-object-proxy==1.4.3  # via astroid
 livereload==2.6.1         # via sphinx-autobuild
-lockfile==0.12.2          # via -r requirements/run.txt, python-daemon
-markupsafe==1.1.1         # via -r requirements/run.txt, jinja2
+markupsafe==1.1.1         # via jinja2
 mccabe==0.6.1             # via pylint
 more-itertools==8.2.0     # via pytest
 packaging==20.3           # via pytest, sphinx, tox
-parso==0.6.2              # via -r requirements/run.txt, jedi
-pathtools==0.1.2          # via -r requirements/run.txt, sphinx-autobuild, watchdog
-pexpect==4.8.0            # via -r requirements/run.txt, ipython
-pickleshare==0.7.5        # via -r requirements/run.txt, ipython
+pathtools==0.1.2          # via sphinx-autobuild, watchdog
 pip-tools==4.5.1          # via -r requirements/dev.in
 pluggy==0.13.1            # via pytest, tox
 port_for==0.3.1           # via sphinx-autobuild
-prompt-toolkit==3.0.5     # via -r requirements/run.txt, ipython
-ptyprocess==0.6.0         # via -r requirements/run.txt, pexpect
 py==1.8.1                 # via pytest, tox
 pycodestyle==2.5.0        # via yala
-pygments==2.6.1           # via -r requirements/run.txt, ipython, sphinx
-pyjwt==1.7.1              # via -r requirements/run.txt
+pygments==2.6.1           # via sphinx
 pylint==2.4.4             # via yala
 pyparsing==2.4.6          # via packaging
 pytest==5.4.1             # via -r requirements/dev.in
-python-daemon==2.2.4      # via -r requirements/run.txt
-python-engineio==3.12.1   # via -r requirements/run.txt, python-socketio
-python-socketio==4.5.1    # via -r requirements/run.txt, flask-socketio
 pytz==2019.3              # via babel
 pyyaml==5.3.1             # via sphinx-autobuild
 requests==2.23.0          # via sphinx
-six==1.15.0               # via -r requirements/run.txt, astroid, flask-cors, livereload, packaging, pip-tools, python-engineio, python-socketio, tox, traitlets, virtualenv
+six==1.15.0               # via astroid, livereload, packaging, pip-tools, tox, virtualenv
 snowballstemmer==2.0.0    # via sphinx
 sphinx-autobuild==0.7.1   # via kytos-sphinx-theme
 sphinx==2.0.1             # via kytos-sphinx-theme
@@ -77,14 +58,14 @@ sphinxcontrib-serializinghtml==1.1.4  # via sphinx
 toml==0.10.0              # via tox
 tornado==6.0.4            # via livereload, sphinx-autobuild
 tox==3.14.6               # via -r requirements/dev.in
-traitlets==4.3.3          # via -r requirements/run.txt, ipython
+typed-ast==1.4.1          # via astroid
 urllib3==1.25.8           # via requests
 virtualenv==20.0.15       # via tox
-watchdog==0.10.2          # via -r requirements/run.txt, sphinx-autobuild
-wcwidth==0.1.9            # via -r requirements/run.txt, prompt-toolkit, pytest
-werkzeug==1.0.1           # via -r requirements/run.txt, flask
+watchdog==0.10.2          # via sphinx-autobuild
+wcwidth==0.1.9            # via pytest
 wrapt==1.11.2             # via astroid
 yala==2.2.0               # via -r requirements/dev.in
+zipp==3.1.0               # via importlib-metadata, importlib-resources
 
 # The following packages are considered to be unsafe in a requirements file:
 # setuptools

Error if two NApps have methods with the same name decorated with @rest
If two NApps declare REST endpoints in methods with the same name, Flask raises an exception. One way to solve this problem is to use Flask [blueprints](https://flask.palletsprojects.com/en/1.1.x/blueprints).
diff --git a/tests/unit/test_core/test_api_server.py b/tests/unit/test_core/test_api_server.py
index 7775586..1d98e71 100644
--- a/tests/unit/test_core/test_api_server.py
+++ b/tests/unit/test_core/test_api_server.py
@@ -393,13 +393,15 @@ class RESTNApp:  # pylint: disable=too-few-public-methods
     def __init__(self):
         self.username = 'test'
         self.name = 'MyNApp'
+        self.napp_id = 'test/MyNApp'
 
 
 class TestAPIDecorator(unittest.TestCase):
     """@rest should have the same effect as ``Flask.route``."""
 
     @classmethod
-    def test_flask_call(cls):
+    @patch('kytos.core.api_server.Blueprint')
+    def test_flask_call(cls, mock_blueprint):
         """@rest params should be forwarded to Flask."""
         rule = 'rule'
         # Use sentinels to be sure they are not changed.
@@ -412,9 +414,12 @@ class TestAPIDecorator(unittest.TestCase):
             def my_endpoint(self):
                 """Do nothing."""
 
+        blueprint = Mock()
+        mock_blueprint.return_value = blueprint
+
         napp = MyNApp()
-        server = cls._mock_api_server(napp)
-        server.app.add_url_rule.assert_called_once_with(
+        cls._mock_api_server(napp)
+        blueprint.add_url_rule.assert_called_once_with(
             '/api/test/MyNApp/' + rule, None, napp.my_endpoint, **options)
 
     @classmethod
@@ -426,6 +431,7 @@ class TestAPIDecorator(unittest.TestCase):
             def __init__(self):
                 self.username = 'test'
                 self.name = 'MyNApp'
+                self.napp_id = 'test/MyNApp'
 
         napp = MyNApp()
         server = cls._mock_api_server(napp)
@@ -447,9 +453,11 @@ class TestAPIDecorator(unittest.TestCase):
         # pylint: disable=protected-access
         server.app.url_map._rules.pop.assert_called_once_with(0)
         # pylint: enable=protected-access
+        server.app.blueprints.pop.assert_called_once_with(napp.napp_id)
 
     @classmethod
-    def test_rule_with_slash(cls):
+    @patch('kytos.core.api_server.Blueprint')
+    def test_rule_with_slash(cls, mock_blueprint):
         """There should be no double slashes in a rule."""
         class MyNApp(RESTNApp):  # pylint: disable=too-few-public-methods
             """API decorator example usage."""
@@ -458,10 +466,13 @@ class TestAPIDecorator(unittest.TestCase):
             def my_endpoint(self):
                 """Do nothing."""
 
-        cls._assert_rule_is_added(MyNApp)
+        blueprint = Mock()
+        mock_blueprint.return_value = blueprint
+        cls._assert_rule_is_added(MyNApp, blueprint)
 
     @classmethod
-    def test_rule_from_classmethod(cls):
+    @patch('kytos.core.api_server.Blueprint')
+    def test_rule_from_classmethod(cls, mock_blueprint):
         """Use class methods as endpoints as well."""
         class MyNApp(RESTNApp):  # pylint: disable=too-few-public-methods
             """API decorator example usage."""
@@ -471,10 +482,13 @@ class TestAPIDecorator(unittest.TestCase):
             def my_endpoint(cls):
                 """Do nothing."""
 
-        cls._assert_rule_is_added(MyNApp)
+        blueprint = Mock()
+        mock_blueprint.return_value = blueprint
+        cls._assert_rule_is_added(MyNApp, blueprint)
 
     @classmethod
-    def test_rule_from_staticmethod(cls):
+    @patch('kytos.core.api_server.Blueprint')
+    def test_rule_from_staticmethod(cls, mock_blueprint):
         """Use static methods as endpoints as well."""
         class MyNApp(RESTNApp):  # pylint: disable=too-few-public-methods
             """API decorator example usage."""
@@ -484,14 +498,16 @@ class TestAPIDecorator(unittest.TestCase):
             def my_endpoint():
                 """Do nothing."""
 
-        cls._assert_rule_is_added(MyNApp)
+        blueprint = Mock()
+        mock_blueprint.return_value = blueprint
+        cls._assert_rule_is_added(MyNApp, blueprint)
 
     @classmethod
-    def _assert_rule_is_added(cls, napp_class):
+    def _assert_rule_is_added(cls, napp_class, blueprint):
         """Assert Flask's add_url_rule was called with the right parameters."""
         napp = napp_class()
-        server = cls._mock_api_server(napp)
-        server.app.add_url_rule.assert_called_once_with(
+        cls._mock_api_server(napp)
+        blueprint.add_url_rule.assert_called_once_with(
             '/api/test/MyNApp/rule', None, napp.my_endpoint)
 
     @staticmethod
diff --git a/tests/unit/test_core/test_auth.py b/tests/unit/test_core/test_auth.py
index b84d772..3f6f467 100644
--- a/tests/unit/test_core/test_auth.py
+++ b/tests/unit/test_core/test_auth.py
@@ -56,7 +56,6 @@ class TestAuth(TestCase):
     @staticmethod
     def get_auth_test_client(auth):
         """Return a flask api test client."""
-        auth.controller.api_server.register_napp_endpoints(auth)
         return auth.controller.api_server.app.test_client()
 
     @patch('kytos.core.auth.Auth._create_superuser')
diff --git a/tests/unit/test_core/test_controller.py b/tests/unit/test_core/test_controller.py
index d365f21..20524f7 100644
--- a/tests/unit/test_core/test_controller.py
+++ b/tests/unit/test_core/test_controller.py
@@ -60,7 +60,8 @@ class TestController(TestCase):
         # Restore original state
         logging.root.handlers = handlers_bak
 
-    def test_unload_napp_listener(self):
+    @patch('kytos.core.api_server.APIServer.remove_napp_endpoints')
+    def test_unload_napp_listener(self, _):
         """Call NApp shutdown listener on unload."""
         username, napp_name = 'test', 'napp'
         listener = self._add_napp(username, napp_name)
@@ -69,7 +70,8 @@ class TestController(TestCase):
         self.controller.unload_napp(username, napp_name)
         listener.assert_called()
 
-    def test_unload_napp_other_listener(self):
+    @patch('kytos.core.api_server.APIServer.remove_napp_endpoints')
+    def test_unload_napp_other_listener(self, _):
         """Should not call other NApps' shutdown listener on unload."""
         username, napp_name = 'test', 'napp1'
         self._add_napp(username, napp_name)

pip install -e .[dev]
parse_log_pytest
requirements.txt
jwt pytest
apt-get update apt-get install -y gcc
3.9
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
appnope==0.1.0
backcall==0.1.0
cffi==1.17.1
click==7.1.1
cryptography==44.0.2
decorator==4.4.2
docutils==0.16
exceptiongroup==1.2.2
Flask==1.1.2
Flask-Cors==3.0.8
Flask-SocketIO==4.2.1
iniconfig==2.1.0
ipython==7.13.0
ipython-genutils==0.2.0
itsdangerous==1.1.0
janus==0.4.0
jedi==0.16.0
Jinja2==2.11.1
jwt==1.3.1
-e git+https://github.com/kytos/kytos.git@8de8c8b0da210cf874efba939654c5a5985dc946#egg=kytos
lockfile==0.12.2
MarkupSafe==1.1.1
packaging==24.2
parso==0.6.2
pathtools==0.1.2
pexpect==4.8.0
pickleshare==0.7.5
pluggy==1.5.0
prompt-toolkit==3.0.5
ptyprocess==0.6.0
pycparser==2.22
Pygments==2.6.1
PyJWT==1.7.1
pytest==8.3.5
python-daemon==2.2.4
python-engineio==3.12.1
python-openflow==2020.1
python-socketio==4.5.1
six==1.15.0
tomli==2.2.1
traitlets==4.3.3
watchdog==0.10.2
wcwidth==0.1.9
Werkzeug==1.0.1

name: kytos
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - appnope==0.1.0
      - backcall==0.1.0
      - cffi==1.17.1
      - click==7.1.1
      - cryptography==44.0.2
      - decorator==4.4.2
      - docutils==0.16
      - exceptiongroup==1.2.2
      - flask==1.1.2
      - flask-cors==3.0.8
      - flask-socketio==4.2.1
      - iniconfig==2.1.0
      - ipython==7.13.0
      - ipython-genutils==0.2.0
      - itsdangerous==1.1.0
      - janus==0.4.0
      - jedi==0.16.0
      - jinja2==2.11.1
      - jwt==1.3.1
      - lockfile==0.12.2
      - markupsafe==1.1.1
      - packaging==24.2
      - parso==0.6.2
      - pathtools==0.1.2
      - pexpect==4.8.0
      - pickleshare==0.7.5
      - pluggy==1.5.0
      - prompt-toolkit==3.0.5
      - ptyprocess==0.6.0
      - pycparser==2.22
      - pygments==2.6.1
      - pyjwt==1.7.1
      - pytest==8.3.5
      - python-daemon==2.2.4
      - python-engineio==3.12.1
      - python-openflow==2020.1
      - python-socketio==4.5.1
      - six==1.15.0
      - tomli==2.2.1
      - traitlets==4.3.3
      - watchdog==0.10.2
      - wcwidth==0.1.9
      - werkzeug==1.0.1
prefix: /opt/conda/envs/kytos

tests/unit/test_core/test_api_server.py::TestAPIDecorator::test_flask_call tests/unit/test_core/test_api_server.py::TestAPIDecorator::test_remove_napp_endpoints tests/unit/test_core/test_api_server.py::TestAPIDecorator::test_rule_from_classmethod tests/unit/test_core/test_api_server.py::TestAPIDecorator::test_rule_from_staticmethod tests/unit/test_core/test_api_server.py::TestAPIDecorator::test_rule_with_slash
tests/unit/test_core/test_api_server.py::TestAPIServer::test_shutdown_api tests/unit/test_core/test_api_server.py::TestAPIServer::test_shutdown_api__error tests/unit/test_core/test_controller.py::TestController::test_start_controller
tests/unit/test_core/test_api_server.py::TestAPIServer::test_deprecation_warning tests/unit/test_core/test_api_server.py::TestAPIServer::test_disable_napp__error_not_enabling tests/unit/test_core/test_api_server.py::TestAPIServer::test_disable_napp__error_not_installed tests/unit/test_core/test_api_server.py::TestAPIServer::test_disable_napp__success tests/unit/test_core/test_api_server.py::TestAPIServer::test_enable_napp__error_not_enabling tests/unit/test_core/test_api_server.py::TestAPIServer::test_enable_napp__error_not_installed tests/unit/test_core/test_api_server.py::TestAPIServer::test_enable_napp__success tests/unit/test_core/test_api_server.py::TestAPIServer::test_get_napp_metadata tests/unit/test_core/test_api_server.py::TestAPIServer::test_get_napp_metadata__invalid_key tests/unit/test_core/test_api_server.py::TestAPIServer::test_get_napp_metadata__not_installed tests/unit/test_core/test_api_server.py::TestAPIServer::test_get_ui_components tests/unit/test_core/test_api_server.py::TestAPIServer::test_install_napp__error_not_installing tests/unit/test_core/test_api_server.py::TestAPIServer::test_install_napp__http_error tests/unit/test_core/test_api_server.py::TestAPIServer::test_install_napp__success tests/unit/test_core/test_api_server.py::TestAPIServer::test_install_napp__success_is_installed tests/unit/test_core/test_api_server.py::TestAPIServer::test_list_enabled_napps tests/unit/test_core/test_api_server.py::TestAPIServer::test_list_installed_napps tests/unit/test_core/test_api_server.py::TestAPIServer::test_run tests/unit/test_core/test_api_server.py::TestAPIServer::test_run_error tests/unit/test_core/test_api_server.py::TestAPIServer::test_static_web_ui__error tests/unit/test_core/test_api_server.py::TestAPIServer::test_static_web_ui__success tests/unit/test_core/test_api_server.py::TestAPIServer::test_status_api tests/unit/test_core/test_api_server.py::TestAPIServer::test_stop_api_server tests/unit/test_core/test_api_server.py::TestAPIServer::test_uninstall_napp__error_not_uninstalling tests/unit/test_core/test_api_server.py::TestAPIServer::test_uninstall_napp__success tests/unit/test_core/test_api_server.py::TestAPIServer::test_uninstall_napp__success_not_installed tests/unit/test_core/test_api_server.py::TestAPIServer::test_update_web_ui tests/unit/test_core/test_api_server.py::TestAPIServer::test_update_web_ui__http_error tests/unit/test_core/test_api_server.py::TestAPIServer::test_update_web_ui__zip_error tests/unit/test_core/test_api_server.py::TestAPIServer::test_web_ui tests/unit/test_core/test_auth.py::TestAuth::test_01_login_request tests/unit/test_core/test_auth.py::TestAuth::test_02_list_users_request tests/unit/test_core/test_auth.py::TestAuth::test_03_create_user_request tests/unit/test_core/test_auth.py::TestAuth::test_03_create_user_request_error tests/unit/test_core/test_auth.py::TestAuth::test_04_list_user_request tests/unit/test_core/test_auth.py::TestAuth::test_04_list_user_request_error tests/unit/test_core/test_auth.py::TestAuth::test_05_update_user_request tests/unit/test_core/test_auth.py::TestAuth::test_05_update_user_request_error tests/unit/test_core/test_auth.py::TestAuth::test_06_delete_user_request tests/unit/test_core/test_auth.py::TestAuth::test_06_delete_user_request_error tests/unit/test_core/test_controller.py::TestController::test_add_new_switch tests/unit/test_core/test_controller.py::TestController::test_app_event_handler tests/unit/test_core/test_controller.py::TestController::test_configuration_endpoint tests/unit/test_core/test_controller.py::TestController::test_create_or_update_connection tests/unit/test_core/test_controller.py::TestController::test_create_pidfile tests/unit/test_core/test_controller.py::TestController::test_debug_empty_name tests/unit/test_core/test_controller.py::TestController::test_debug_no_name tests/unit/test_core/test_controller.py::TestController::test_debug_off tests/unit/test_core/test_controller.py::TestController::test_debug_on tests/unit/test_core/test_controller.py::TestController::test_debug_on_defaults tests/unit/test_core/test_controller.py::TestController::test_debug_wrong_name tests/unit/test_core/test_controller.py::TestController::test_deprecation_warning tests/unit/test_core/test_controller.py::TestController::test_get_connection_by_id tests/unit/test_core/test_controller.py::TestController::test_get_interface_by_id tests/unit/test_core/test_controller.py::TestController::test_get_interface_by_id__not_interface tests/unit/test_core/test_controller.py::TestController::test_get_interface_by_id__not_switch tests/unit/test_core/test_controller.py::TestController::test_get_switch_by_dpid tests/unit/test_core/test_controller.py::TestController::test_get_switch_or_create__exists tests/unit/test_core/test_controller.py::TestController::test_get_switch_or_create__not_exists tests/unit/test_core/test_controller.py::TestController::test_import_napp tests/unit/test_core/test_controller.py::TestController::test_load_napp tests/unit/test_core/test_controller.py::TestController::test_load_napp__error tests/unit/test_core/test_controller.py::TestController::test_load_napp__file_not_found tests/unit/test_core/test_controller.py::TestController::test_load_napp__loaded tests/unit/test_core/test_controller.py::TestController::test_load_napp__module_not_found tests/unit/test_core/test_controller.py::TestController::test_load_napps tests/unit/test_core/test_controller.py::TestController::test_loggers tests/unit/test_core/test_controller.py::TestController::test_metadata_endpoint tests/unit/test_core/test_controller.py::TestController::test_msg_in_event_handler tests/unit/test_core/test_controller.py::TestController::test_msg_out_event_handler tests/unit/test_core/test_controller.py::TestController::test_new_connection tests/unit/test_core/test_controller.py::TestController::test_notify_listeners tests/unit/test_core/test_controller.py::TestController::test_pre_install_napps tests/unit/test_core/test_controller.py::TestController::test_raw_event_handler tests/unit/test_core/test_controller.py::TestController::test_reload_napp tests/unit/test_core/test_controller.py::TestController::test_reload_napp__error tests/unit/test_core/test_controller.py::TestController::test_reload_napp_module tests/unit/test_core/test_controller.py::TestController::test_reload_napp_module__import_error tests/unit/test_core/test_controller.py::TestController::test_reload_napp_module__module_not_found tests/unit/test_core/test_controller.py::TestController::test_remove_connection tests/unit/test_core/test_controller.py::TestController::test_remove_switch tests/unit/test_core/test_controller.py::TestController::test_remove_switch__error tests/unit/test_core/test_controller.py::TestController::test_rest_reload_all_napps tests/unit/test_core/test_controller.py::TestController::test_rest_reload_napp tests/unit/test_core/test_controller.py::TestController::test_restart tests/unit/test_core/test_controller.py::TestController::test_start tests/unit/test_core/test_controller.py::TestController::test_status tests/unit/test_core/test_controller.py::TestController::test_stop tests/unit/test_core/test_controller.py::TestController::test_stop_controller tests/unit/test_core/test_controller.py::TestController::test_unload_napp_listener tests/unit/test_core/test_controller.py::TestController::test_unload_napp_other_listener tests/unit/test_core/test_controller.py::TestController::test_uptime tests/unit/test_core/test_controller.py::TestController::test_websocket_log_usage
Makefile requirements/dev.txt kytos/core/api_server.py
Makefile requirements/dev.txt kytos/core/api_server.py