mirror of
https://github.com/evennia/evennia.git
synced 2026-03-16 21:06:30 +01:00
Add tests for general_context
This commit is contained in:
parent
10fe39b96a
commit
5a83d533a5
2 changed files with 93 additions and 16 deletions
|
|
@ -10,17 +10,25 @@ from django.conf import settings
|
||||||
from evennia.utils.utils import get_evennia_version
|
from evennia.utils.utils import get_evennia_version
|
||||||
|
|
||||||
# Determine the site name and server version
|
# Determine the site name and server version
|
||||||
|
def set_game_name_and_slogan():
|
||||||
|
"""
|
||||||
|
Sets global variables GAME_NAME and GAME_SLOGAN which are used by
|
||||||
|
general_context.
|
||||||
|
|
||||||
try:
|
Notes:
|
||||||
GAME_NAME = settings.SERVERNAME.strip()
|
This function is used for unit testing the values of the globals.
|
||||||
except AttributeError:
|
"""
|
||||||
GAME_NAME = "Evennia"
|
global GAME_NAME, GAME_SLOGAN, SERVER_VERSION
|
||||||
SERVER_VERSION = get_evennia_version()
|
try:
|
||||||
try:
|
GAME_NAME = settings.SERVERNAME.strip()
|
||||||
GAME_SLOGAN = settings.GAME_SLOGAN.strip()
|
except AttributeError:
|
||||||
except AttributeError:
|
GAME_NAME = "Evennia"
|
||||||
GAME_SLOGAN = SERVER_VERSION
|
SERVER_VERSION = get_evennia_version()
|
||||||
|
try:
|
||||||
|
GAME_SLOGAN = settings.GAME_SLOGAN.strip()
|
||||||
|
except AttributeError:
|
||||||
|
GAME_SLOGAN = SERVER_VERSION
|
||||||
|
set_game_name_and_slogan()
|
||||||
|
|
||||||
# Setup lists of the most relevant apps so
|
# Setup lists of the most relevant apps so
|
||||||
# the adminsite becomes more readable.
|
# the adminsite becomes more readable.
|
||||||
|
|
@ -32,13 +40,23 @@ CONNECTIONS = ['Irc']
|
||||||
WEBSITE = ['Flatpages', 'News', 'Sites']
|
WEBSITE = ['Flatpages', 'News', 'Sites']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def set_webclient_settings():
|
||||||
|
"""
|
||||||
|
As with set_game_name_and_slogan above, this sets global variables pertaining
|
||||||
|
to webclient settings.
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
Used for unit testing.
|
||||||
|
"""
|
||||||
|
global WEBCLIENT_ENABLED, WEBSOCKET_CLIENT_ENABLED, WEBSOCKET_PORT, WEBSOCKET_URL
|
||||||
|
WEBCLIENT_ENABLED = settings.WEBCLIENT_ENABLED
|
||||||
|
WEBSOCKET_CLIENT_ENABLED = settings.WEBSOCKET_CLIENT_ENABLED
|
||||||
|
WEBSOCKET_PORT = settings.WEBSOCKET_CLIENT_PORT
|
||||||
|
WEBSOCKET_URL = settings.WEBSOCKET_CLIENT_URL
|
||||||
|
set_webclient_settings()
|
||||||
|
|
||||||
# The main context processor function
|
# The main context processor function
|
||||||
WEBCLIENT_ENABLED = settings.WEBCLIENT_ENABLED
|
|
||||||
WEBSOCKET_CLIENT_ENABLED = settings.WEBSOCKET_CLIENT_ENABLED
|
|
||||||
WEBSOCKET_PORT = settings.WEBSOCKET_CLIENT_PORT
|
|
||||||
WEBSOCKET_URL = settings.WEBSOCKET_CLIENT_URL
|
|
||||||
|
|
||||||
|
|
||||||
def general_context(request):
|
def general_context(request):
|
||||||
"""
|
"""
|
||||||
Returns common Evennia-related context stuff, which
|
Returns common Evennia-related context stuff, which
|
||||||
|
|
|
||||||
59
evennia/web/utils/tests.py
Normal file
59
evennia/web/utils/tests.py
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
from mock import Mock, patch
|
||||||
|
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
from . import general_context
|
||||||
|
|
||||||
|
|
||||||
|
class TestGeneralContext(TestCase):
|
||||||
|
maxDiff = None
|
||||||
|
|
||||||
|
@patch('evennia.web.utils.general_context.GAME_NAME', "test_name")
|
||||||
|
@patch('evennia.web.utils.general_context.GAME_SLOGAN', "test_game_slogan")
|
||||||
|
@patch('evennia.web.utils.general_context.WEBSOCKET_CLIENT_ENABLED', "websocket_client_enabled_testvalue")
|
||||||
|
@patch('evennia.web.utils.general_context.WEBCLIENT_ENABLED', "webclient_enabled_testvalue")
|
||||||
|
@patch('evennia.web.utils.general_context.WEBSOCKET_PORT', "websocket_client_port_testvalue")
|
||||||
|
@patch('evennia.web.utils.general_context.WEBSOCKET_URL', "websocket_client_url_testvalue")
|
||||||
|
def test_general_context(self):
|
||||||
|
request = Mock()
|
||||||
|
self.assertEqual(general_context.general_context(request), {
|
||||||
|
'game_name': "test_name",
|
||||||
|
'game_slogan': "test_game_slogan",
|
||||||
|
'evennia_userapps': ['Accounts'],
|
||||||
|
'evennia_entityapps': ['Objects', 'Scripts', 'Comms', 'Help'],
|
||||||
|
'evennia_setupapps': ['Permissions', 'Config'],
|
||||||
|
'evennia_connectapps': ['Irc'],
|
||||||
|
'evennia_websiteapps': ['Flatpages', 'News', 'Sites'],
|
||||||
|
"webclient_enabled": "webclient_enabled_testvalue",
|
||||||
|
"websocket_enabled": "websocket_client_enabled_testvalue",
|
||||||
|
"websocket_port": "websocket_client_port_testvalue",
|
||||||
|
"websocket_url": "websocket_client_url_testvalue"
|
||||||
|
})
|
||||||
|
|
||||||
|
# spec being an empty list will initially raise AttributeError in set_game_name_and_slogan to test defaults
|
||||||
|
@patch('evennia.web.utils.general_context.settings', spec=[])
|
||||||
|
@patch('evennia.web.utils.general_context.get_evennia_version')
|
||||||
|
def test_set_game_name_and_slogan(self, mock_get_version, mock_settings):
|
||||||
|
mock_get_version.return_value = "version 1"
|
||||||
|
# test default/fallback values
|
||||||
|
general_context.set_game_name_and_slogan()
|
||||||
|
self.assertEqual(general_context.GAME_NAME, "Evennia")
|
||||||
|
self.assertEqual(general_context.GAME_SLOGAN, "version 1")
|
||||||
|
# test values when the settings are defined
|
||||||
|
mock_settings.SERVERNAME = "test_name"
|
||||||
|
mock_settings.GAME_SLOGAN = "test_game_slogan"
|
||||||
|
general_context.set_game_name_and_slogan()
|
||||||
|
self.assertEqual(general_context.GAME_NAME, "test_name")
|
||||||
|
self.assertEqual(general_context.GAME_SLOGAN, "test_game_slogan")
|
||||||
|
|
||||||
|
@patch('evennia.web.utils.general_context.settings')
|
||||||
|
def test_set_webclient_settings(self, mock_settings):
|
||||||
|
mock_settings.WEBCLIENT_ENABLED = "webclient"
|
||||||
|
mock_settings.WEBSOCKET_CLIENT_URL = "websocket_url"
|
||||||
|
mock_settings.WEBSOCKET_CLIENT_ENABLED = "websocket_client"
|
||||||
|
mock_settings.WEBSOCKET_CLIENT_PORT = "websocket_port"
|
||||||
|
general_context.set_webclient_settings()
|
||||||
|
self.assertEqual(general_context.WEBCLIENT_ENABLED, "webclient")
|
||||||
|
self.assertEqual(general_context.WEBSOCKET_URL, "websocket_url")
|
||||||
|
self.assertEqual(general_context.WEBSOCKET_CLIENT_ENABLED, "websocket_client")
|
||||||
|
self.assertEqual(general_context.WEBSOCKET_PORT, "websocket_port")
|
||||||
Loading…
Add table
Add a link
Reference in a new issue