|
|
@@ -25,11 +25,9 @@ from nose.plugins.skip import SkipTest
|
|
|
from nose.tools import assert_true, assert_false, assert_equal, assert_not_equal, assert_raises
|
|
|
|
|
|
from useradmin.models import User
|
|
|
-
|
|
|
+from desktop.conf import CUSTOM
|
|
|
from desktop.api_public import get_django_request
|
|
|
-from desktop.lib.django_test_util import make_logged_in_client
|
|
|
-from desktop.lib.test_utils import grant_access
|
|
|
-
|
|
|
+from desktop.lib.django_test_util import Client, make_logged_in_client
|
|
|
|
|
|
if sys.version_info[0] > 2:
|
|
|
from unittest.mock import patch, Mock, MagicMock
|
|
|
@@ -37,9 +35,38 @@ else:
|
|
|
from mock import patch, Mock, MagicMock
|
|
|
|
|
|
|
|
|
+class TestCoreApi():
|
|
|
+ def setUp(self):
|
|
|
+ self.unauthorized_client = Client()
|
|
|
+
|
|
|
+ def test_banners(self):
|
|
|
+ with patch('desktop.api2.get_banner_message') as get_banner_message:
|
|
|
+ try:
|
|
|
+ configured_banner = '<div>Some config banner</div>'
|
|
|
+ system_banner = '<div>Some system banner</div>'
|
|
|
+ done = CUSTOM.BANNER_TOP_HTML.set_for_testing(configured_banner)
|
|
|
+ get_banner_message.return_value = system_banner
|
|
|
+
|
|
|
+ response = self.unauthorized_client.get(reverse('api:core_banners'))
|
|
|
+
|
|
|
+ get_banner_message.assert_called()
|
|
|
+ json_resp = json.loads(response.content)
|
|
|
+ assert_equal(json_resp['configured'], configured_banner)
|
|
|
+ assert_equal(json_resp['system'], system_banner)
|
|
|
+ finally:
|
|
|
+ done()
|
|
|
+
|
|
|
+
|
|
|
class TestEditorApi():
|
|
|
TEST_INTERPRETER = {
|
|
|
- 'name': 'MySql', 'displayName': 'MySql', 'type': '1', 'interface': 'sqlalchemy', 'options': {'url': 'mysql://hue:hue@localhost:3306/hue', 'has_ssh': False, 'ssh_server_host': '127.0.0.1'}, 'dialect': 'mysql', 'dialect_properties': {'is_sql': True, 'sql_identifier_quote': '`', 'sql_identifier_comment_single': '--', 'has_catalog': True, 'has_database': True, 'has_table': True, 'has_live_queries': False, 'has_optimizer_risks': True, 'has_optimizer_values': True, 'has_auto_limit': False, 'has_reference_language': False, 'has_reference_functions': False, 'has_use_statement': False}, 'category': 'editor', 'is_sql': True, 'is_catalog': False
|
|
|
+ 'name': 'MySql', 'displayName': 'MySql', 'type': '1', 'interface': 'sqlalchemy',
|
|
|
+ 'options': {'url': 'mysql://hue:hue@localhost:3306/hue', 'has_ssh': False, 'ssh_server_host': '127.0.0.1'},
|
|
|
+ 'dialect': 'mysql',
|
|
|
+ 'dialect_properties': {'is_sql': True, 'sql_identifier_quote': '`', 'sql_identifier_comment_single': '--',
|
|
|
+ 'has_catalog': True, 'has_database': True, 'has_table': True, 'has_live_queries': False,
|
|
|
+ 'has_optimizer_risks': True, 'has_optimizer_values': True, 'has_auto_limit': False,
|
|
|
+ 'has_reference_language': False, 'has_reference_functions': False,
|
|
|
+ 'has_use_statement': False}, 'category': 'editor', 'is_sql': True, 'is_catalog': False
|
|
|
}
|
|
|
|
|
|
def setUp(self):
|
|
|
@@ -58,7 +85,7 @@ class TestEditorApi():
|
|
|
execute.return_value = HttpResponse()
|
|
|
_get_interpreter_from_dialect.return_value = TestEditorApi.TEST_INTERPRETER
|
|
|
|
|
|
- self.client.post(reverse('api:editor_execute', args=['hive']), {'statement':'SHOW TABLES'})
|
|
|
+ self.client.post(reverse('api:editor_execute', args=['hive']), {'statement': 'SHOW TABLES'})
|
|
|
|
|
|
execute.assert_called()
|
|
|
if not execute.call_args.args[1]:
|