2014-02-14 20:44:36 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
2014-11-21 19:05:13 +00:00
|
|
|
# Import python libs
|
2018-01-03 23:19:53 +00:00
|
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
2014-11-21 19:05:13 +00:00
|
|
|
|
2014-02-04 02:35:25 +00:00
|
|
|
# Import Salt Testing libs
|
2017-02-27 13:58:07 +00:00
|
|
|
from tests.support.unit import TestCase, skipIf
|
|
|
|
from tests.support.mock import NO_MOCK, NO_MOCK_REASON
|
2014-08-12 22:48:01 +00:00
|
|
|
|
|
|
|
# Import Salt Libs
|
2017-03-21 17:15:36 +00:00
|
|
|
import salt.pillar.mysql as mysql
|
2014-02-04 02:35:25 +00:00
|
|
|
|
2014-02-14 20:44:36 +00:00
|
|
|
|
2014-08-12 22:48:01 +00:00
|
|
|
@skipIf(NO_MOCK, NO_MOCK_REASON)
|
2018-04-05 11:23:23 +00:00
|
|
|
@skipIf(mysql.MySQLdb is None, 'MySQL-python module not installed')
|
2014-02-04 02:35:25 +00:00
|
|
|
class MysqlPillarTestCase(TestCase):
|
|
|
|
maxDiff = None
|
|
|
|
|
|
|
|
def test_001_extract_queries_legacy(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2016-02-10 18:40:41 +00:00
|
|
|
args, kwargs = ['SELECT blah'], {}
|
2014-02-04 02:35:25 +00:00
|
|
|
qbuffer = return_data.extract_queries(args, kwargs)
|
|
|
|
self.assertEqual([
|
2014-08-12 22:44:33 +00:00
|
|
|
[None, {'query': 'SELECT blah', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}]
|
2014-02-04 02:35:25 +00:00
|
|
|
], qbuffer)
|
|
|
|
|
|
|
|
def test_002_extract_queries_list(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
args, kwargs = [
|
|
|
|
'SELECT blah',
|
|
|
|
'SELECT blah2',
|
|
|
|
('SELECT blah3',),
|
2014-02-14 20:44:36 +00:00
|
|
|
('SELECT blah4', 2),
|
2014-02-04 02:35:25 +00:00
|
|
|
{'query': 'SELECT blah5'},
|
|
|
|
{'query': 'SELECT blah6', 'depth': 2},
|
|
|
|
{'query': 'SELECT blah7', 'as_list': True},
|
2014-02-05 00:27:12 +00:00
|
|
|
{'query': 'SELECT blah8', 'with_lists': '1'},
|
|
|
|
{'query': 'SELECT blah9', 'with_lists': '1,2'}
|
2014-02-04 02:35:25 +00:00
|
|
|
], {}
|
|
|
|
qbuffer = return_data.extract_queries(args, kwargs)
|
|
|
|
self.assertEqual([
|
2014-08-12 22:44:33 +00:00
|
|
|
[None, {'query': 'SELECT blah', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah2', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah3', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah4', 'depth': 2, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah5', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah6', 'depth': 2, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah7', 'depth': 0, 'as_list': True,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah8', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': [1], 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah9', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': [1, 2], 'ignore_null': False}]
|
2014-02-04 02:35:25 +00:00
|
|
|
], qbuffer)
|
|
|
|
|
|
|
|
def test_003_extract_queries_kwarg(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
args, kwargs = [], {
|
|
|
|
'1': 'SELECT blah',
|
|
|
|
'2': 'SELECT blah2',
|
|
|
|
'3': ('SELECT blah3',),
|
2014-02-14 20:44:36 +00:00
|
|
|
'4': ('SELECT blah4', 2),
|
2014-02-04 02:35:25 +00:00
|
|
|
'5': {'query': 'SELECT blah5'},
|
|
|
|
'6': {'query': 'SELECT blah6', 'depth': 2},
|
|
|
|
'7': {'query': 'SELECT blah7', 'as_list': True},
|
|
|
|
}
|
|
|
|
qbuffer = return_data.extract_queries(args, kwargs)
|
|
|
|
self.assertEqual([
|
2014-08-12 22:44:33 +00:00
|
|
|
['1', {'query': 'SELECT blah', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
['2', {'query': 'SELECT blah2', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
['3', {'query': 'SELECT blah3', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
['4', {'query': 'SELECT blah4', 'depth': 2, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
['5', {'query': 'SELECT blah5', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
['6', {'query': 'SELECT blah6', 'depth': 2, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
['7', {'query': 'SELECT blah7', 'depth': 0, 'as_list': True,
|
|
|
|
'with_lists': None, 'ignore_null': False}]
|
2014-02-04 02:35:25 +00:00
|
|
|
], qbuffer)
|
|
|
|
|
|
|
|
def test_004_extract_queries_mixed(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
args, kwargs = [
|
|
|
|
'SELECT blah1',
|
2014-02-14 20:44:36 +00:00
|
|
|
('SELECT blah2', 2),
|
2014-02-04 02:35:25 +00:00
|
|
|
{'query': 'SELECT blah3', 'as_list': True},
|
|
|
|
], {
|
|
|
|
'1': 'SELECT blah1',
|
2014-02-14 20:44:36 +00:00
|
|
|
'2': ('SELECT blah2', 2),
|
2014-02-04 02:35:25 +00:00
|
|
|
'3': {'query': 'SELECT blah3', 'as_list': True},
|
|
|
|
}
|
|
|
|
qbuffer = return_data.extract_queries(args, kwargs)
|
|
|
|
self.assertEqual([
|
2014-08-12 22:44:33 +00:00
|
|
|
[None, {'query': 'SELECT blah1', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah2', 'depth': 2, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah3', 'depth': 0, 'as_list': True,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
['1', {'query': 'SELECT blah1', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
['2', {'query': 'SELECT blah2', 'depth': 2, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
['3', {'query': 'SELECT blah3', 'depth': 0, 'as_list': True,
|
|
|
|
'with_lists': None, 'ignore_null': False}]
|
2014-02-04 02:35:25 +00:00
|
|
|
], qbuffer)
|
|
|
|
|
|
|
|
def test_005_extract_queries_bogus_list(self):
|
|
|
|
# This test is specifically checking that empty queries are dropped
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
args, kwargs = [
|
|
|
|
'SELECT blah',
|
|
|
|
'',
|
|
|
|
'SELECT blah2',
|
|
|
|
('SELECT blah3',),
|
|
|
|
('',),
|
2014-02-14 20:44:36 +00:00
|
|
|
('SELECT blah4', 2),
|
2014-02-04 02:35:25 +00:00
|
|
|
tuple(),
|
|
|
|
('SELECT blah5',),
|
|
|
|
{'query': 'SELECT blah6'},
|
|
|
|
{'query': ''},
|
|
|
|
{'query': 'SELECT blah7', 'depth': 2},
|
|
|
|
{'not_a_query': 'in sight!'},
|
|
|
|
{'query': 'SELECT blah8', 'as_list': True},
|
|
|
|
], {}
|
|
|
|
qbuffer = return_data.extract_queries(args, kwargs)
|
|
|
|
self.assertEqual([
|
2014-08-12 22:44:33 +00:00
|
|
|
[None, {'query': 'SELECT blah', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah2', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah3', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah4', 'depth': 2, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah5', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah6', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah7', 'depth': 2, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
[None, {'query': 'SELECT blah8', 'depth': 0, 'as_list': True,
|
|
|
|
'with_lists': None, 'ignore_null': False}]
|
2014-02-04 02:35:25 +00:00
|
|
|
], qbuffer)
|
|
|
|
|
|
|
|
def test_006_extract_queries_bogus_kwargs(self):
|
|
|
|
# this test is cut down as most of the path matches test_*_bogus_list
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
args, kwargs = [], {
|
|
|
|
'1': 'SELECT blah',
|
2014-02-14 20:44:36 +00:00
|
|
|
'2': '',
|
2014-02-04 02:35:25 +00:00
|
|
|
'3': 'SELECT blah2'
|
|
|
|
}
|
|
|
|
qbuffer = return_data.extract_queries(args, kwargs)
|
|
|
|
self.assertEqual([
|
2014-08-12 22:44:33 +00:00
|
|
|
['1', {'query': 'SELECT blah', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}],
|
|
|
|
['3', {'query': 'SELECT blah2', 'depth': 0, 'as_list': False,
|
|
|
|
'with_lists': None, 'ignore_null': False}]
|
2014-02-04 02:35:25 +00:00
|
|
|
], qbuffer)
|
|
|
|
|
|
|
|
def test_011_enter_root(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root("test")
|
|
|
|
self.assertEqual(return_data.result["test"], return_data.focus)
|
|
|
|
return_data.enter_root(None)
|
|
|
|
self.assertEqual(return_data.result, return_data.focus)
|
|
|
|
|
|
|
|
def test_021_process_fields(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b'], 0)
|
|
|
|
self.assertEqual(return_data.num_fields, 2)
|
|
|
|
self.assertEqual(return_data.depth, 1)
|
|
|
|
return_data.process_fields(['a', 'b'], 2)
|
|
|
|
self.assertEqual(return_data.num_fields, 2)
|
|
|
|
self.assertEqual(return_data.depth, 1)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
|
|
|
self.assertEqual(return_data.num_fields, 4)
|
|
|
|
self.assertEqual(return_data.depth, 3)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 1)
|
|
|
|
self.assertEqual(return_data.num_fields, 4)
|
|
|
|
self.assertEqual(return_data.depth, 1)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 2)
|
|
|
|
self.assertEqual(return_data.num_fields, 4)
|
|
|
|
self.assertEqual(return_data.depth, 2)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 3)
|
|
|
|
self.assertEqual(return_data.num_fields, 4)
|
|
|
|
self.assertEqual(return_data.depth, 3)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 4)
|
|
|
|
self.assertEqual(return_data.num_fields, 4)
|
|
|
|
self.assertEqual(return_data.depth, 3)
|
|
|
|
|
|
|
|
def test_111_process_results_legacy(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b'], 0)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_results([[1, 2]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: 2},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_112_process_results_legacy_multiple(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b'], 0)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_results([[1, 2], [3, 4], [5, 6]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: 2, 3: 4, 5: 6},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_121_process_results_depth_0(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4], [5, 6, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: 4}}, 5: {6: {7: 8}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_122_process_results_depth_1(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 1)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4], [5, 6, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {'b': 2, 'c': 3, 'd': 4}, 5: {'b': 6, 'c': 7, 'd': 8}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_123_process_results_depth_2(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 2)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4], [5, 6, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {'c': 3, 'd': 4}}, 5: {6: {'c': 7, 'd': 8}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_124_process_results_depth_3(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 3)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4], [5, 6, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: 4}}, 5: {6: {7: 8}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_125_process_results_depth_4(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 4)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4], [5, 6, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: 4}}, 5: {6: {7: 8}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_131_process_results_overwrite_legacy_multiple(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b'], 0)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_results([[1, 2], [3, 4], [1, 6]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: 6, 3: 4},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_132_process_results_merge_depth_0(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4], [1, 6, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: 4}, 6: {7: 8}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_133_process_results_overwrite_depth_0(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4], [1, 2, 3, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: 8}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_134_process_results_deepmerge_depth_0(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4], [1, 2, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: 4, 7: 8}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_135_process_results_overwrite_depth_1(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 1)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4], [1, 6, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {'b': 6, 'c': 7, 'd': 8}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_136_process_results_merge_depth_2(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 2)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4], [1, 6, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {'c': 3, 'd': 4}, 6: {'c': 7, 'd': 8}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_137_process_results_overwrite_depth_2(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 2)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4], [1, 2, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {'c': 7, 'd': 8}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_201_process_results_complexity_multiresults(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 2)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_results([[1, 2, 3, 4]])
|
|
|
|
return_data.process_results([[1, 2, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {'c': 7, 'd': 8}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_202_process_results_complexity_as_list(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 2)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.as_list = True
|
|
|
|
return_data.process_results([[1, 2, 3, 4]])
|
|
|
|
return_data.process_results([[1, 2, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {'c': [3, 7], 'd': [4, 8]}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_203_process_results_complexity_as_list_deeper(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.as_list = True
|
|
|
|
return_data.process_results([[1, 2, 3, 4]])
|
|
|
|
return_data.process_results([[1, 2, 3, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: [4, 8]}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_204_process_results_complexity_as_list_mismatch_depth(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.as_list = True
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 4]])
|
|
|
|
return_data.process_results([[1, 2, 3, 5]])
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd', 'e'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 6, 7]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: [4, 5, {6: 7}]}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_205_process_results_complexity_as_list_mismatch_depth_reversed(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.as_list = True
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd', 'e'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 6, 7]])
|
|
|
|
return_data.process_results([[1, 2, 3, 8, 9]])
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 4]])
|
|
|
|
return_data.process_results([[1, 2, 3, 5]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: [{6: 7, 8: 9}, 4, 5]}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_206_process_results_complexity_as_list_mismatch_depth_weird_order(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.as_list = True
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd', 'e'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 6, 7]])
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 4]])
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd', 'e'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 8, 9]])
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 5]])
|
|
|
|
self.assertEqual(
|
2014-02-14 20:44:36 +00:00
|
|
|
{1: {2: {3: [{6: 7, }, 4, {8: 9}, 5]}}},
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_207_process_results_complexity_collision_mismatch_depth(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.as_list = False
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 4]])
|
|
|
|
return_data.process_results([[1, 2, 3, 5]])
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd', 'e'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 6, 7]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: {6: 7}}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_208_process_results_complexity_collision_mismatch_depth_reversed(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.as_list = False
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd', 'e'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 6, 7]])
|
|
|
|
return_data.process_results([[1, 2, 3, 8, 9]])
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 4]])
|
|
|
|
return_data.process_results([[1, 2, 3, 5]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: 5}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_209_process_results_complexity_collision_mismatch_depth_weird_order(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.as_list = False
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd', 'e'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 6, 7]])
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 4]])
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd', 'e'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 8, 9]])
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 5]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: 5}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_20A_process_results_complexity_as_list_vary(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.as_list = True
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd', 'e'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 6, 7]])
|
|
|
|
return_data.process_results([[1, 2, 3, 8, 9]])
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 4]])
|
|
|
|
return_data.as_list = False
|
|
|
|
return_data.process_results([[1, 2, 3, 5]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {2: {3: 5}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_207_process_results_complexity_roots_collision(self):
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.as_list = False
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.with_lists = []
|
2014-02-04 02:35:25 +00:00
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd'], 0)
|
|
|
|
return_data.process_results([[1, 2, 3, 4]])
|
|
|
|
return_data.enter_root(1)
|
|
|
|
return_data.process_results([[5, 6, 7, 8]])
|
|
|
|
self.assertEqual(
|
|
|
|
{1: {5: {6: {7: 8}}}},
|
|
|
|
return_data.result
|
|
|
|
)
|
2014-02-05 00:27:12 +00:00
|
|
|
|
|
|
|
def test_301_process_results_with_lists(self):
|
2018-04-27 04:54:28 +00:00
|
|
|
'''
|
|
|
|
Validates the following results:
|
|
|
|
|
|
|
|
{'a': [
|
|
|
|
{'c': [
|
|
|
|
{'e': 1},
|
|
|
|
{'g': 2}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{'h': [
|
|
|
|
{'j': 3, 'k': 4}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]}
|
|
|
|
'''
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.as_list = False
|
|
|
|
return_data.with_lists = [1, 3]
|
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd', 'e', 'v'], 0)
|
|
|
|
return_data.process_results([['a', 'b', 'c', 'd', 'e', 1],
|
|
|
|
['a', 'b', 'c', 'f', 'g', 2],
|
|
|
|
['a', 'z', 'h', 'y', 'j', 3],
|
|
|
|
['a', 'z', 'h', 'y', 'k', 4]])
|
2018-04-27 04:54:28 +00:00
|
|
|
assert 'a' in return_data.result
|
|
|
|
for x in return_data.result['a']:
|
|
|
|
if 'c' in x:
|
|
|
|
assert list(x.keys()) == ['c'], x.keys()
|
|
|
|
for y in x['c']:
|
|
|
|
if 'e' in y:
|
|
|
|
assert list(y.keys()) == ['e']
|
|
|
|
assert y['e'] == 1
|
|
|
|
elif 'g' in y:
|
|
|
|
assert list(y.keys()) == ['g']
|
|
|
|
assert y['g'] == 2
|
|
|
|
else:
|
2018-04-27 08:22:39 +00:00
|
|
|
raise ValueError("Unexpected value {0}".format(y))
|
2018-04-27 04:54:28 +00:00
|
|
|
elif 'h' in x:
|
|
|
|
assert len(x['h']) == 1
|
|
|
|
for y in x['h']:
|
|
|
|
if 'j' in y:
|
|
|
|
assert len(y.keys()) == 2
|
|
|
|
assert y['j'] == 3
|
|
|
|
elif 'h' in y:
|
|
|
|
assert len(y.keys()) == 2
|
|
|
|
assert y['k'] == 4
|
|
|
|
else:
|
2018-04-27 08:22:39 +00:00
|
|
|
raise ValueError("Unexpected value {0}".format(y))
|
2018-04-27 04:54:28 +00:00
|
|
|
else:
|
2018-04-27 08:22:39 +00:00
|
|
|
raise ValueError("Unexpected value {0}".format(x))
|
2014-02-05 00:27:12 +00:00
|
|
|
|
|
|
|
def test_302_process_results_with_lists_consecutive(self):
|
2018-04-27 04:54:28 +00:00
|
|
|
'''
|
|
|
|
Validates the following results:
|
|
|
|
|
|
|
|
{'a': [
|
|
|
|
[[
|
|
|
|
{'e': 1},
|
|
|
|
{'g': 2}
|
|
|
|
]
|
|
|
|
],
|
|
|
|
[[
|
|
|
|
{'j': 3, 'k': 4}
|
|
|
|
]
|
|
|
|
]
|
|
|
|
]}
|
|
|
|
'''
|
2015-05-27 18:43:23 +00:00
|
|
|
return_data = mysql.MySQLExtPillar()
|
2014-02-05 00:27:12 +00:00
|
|
|
return_data.as_list = False
|
|
|
|
return_data.with_lists = [1, 2, 3]
|
|
|
|
return_data.enter_root(None)
|
|
|
|
return_data.process_fields(['a', 'b', 'c', 'd', 'e', 'v'], 0)
|
|
|
|
return_data.process_results([['a', 'b', 'c', 'd', 'e', 1],
|
|
|
|
['a', 'b', 'c', 'f', 'g', 2],
|
|
|
|
['a', 'z', 'h', 'y', 'j', 3],
|
|
|
|
['a', 'z', 'h', 'y', 'k', 4]])
|
2018-04-27 04:54:28 +00:00
|
|
|
|
|
|
|
assert 'a' in return_data.result
|
|
|
|
for x in return_data.result['a']:
|
|
|
|
assert len(x) == 1
|
|
|
|
if len(x[0][0]) == 1:
|
|
|
|
for y in x[0]:
|
|
|
|
if 'e' in y:
|
|
|
|
assert list(y.keys()) == ['e']
|
|
|
|
assert y['e'] == 1
|
|
|
|
elif 'g' in y:
|
|
|
|
assert list(y.keys()) == ['g']
|
|
|
|
assert y['g'] == 2
|
|
|
|
else:
|
2018-04-27 08:22:39 +00:00
|
|
|
raise ValueError("Unexpected value {0}".format(y))
|
2018-04-27 04:54:28 +00:00
|
|
|
elif len(x[0][0]) == 2:
|
|
|
|
for y in x[0]:
|
|
|
|
if 'j' in y:
|
|
|
|
assert len(y.keys()) == 2
|
2018-04-27 16:04:01 +00:00
|
|
|
assert y['j'] == 3
|
2018-04-27 04:54:28 +00:00
|
|
|
elif 'k' in y:
|
|
|
|
assert len(y.keys()) == 2
|
2018-04-27 16:04:01 +00:00
|
|
|
assert y['k'] == 4
|
2018-04-27 04:54:28 +00:00
|
|
|
else:
|
2018-04-27 08:22:39 +00:00
|
|
|
raise ValueError(
|
|
|
|
"Unexpected value {0}".format(len(x[0][0]))
|
|
|
|
)
|
2018-04-27 04:54:28 +00:00
|
|
|
else:
|
2018-04-27 08:22:39 +00:00
|
|
|
raise ValueError("Unexpected value {0}".format(x))
|