Commit 889711ed authored by Tomáš Peterka's avatar Tomáš Peterka Committed by Rafael Monnerat

[test] Do not check non-function commands

parent 07629dce
......@@ -26,6 +26,7 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from __future__ import print_function
import logging
import slapos.format
......@@ -68,7 +69,7 @@ class FakeCallAndRead:
retval = 0, 'UP'
global INTERFACE_DICT
if 'useradd' in argument_list:
print argument_list
print(argument_list)
global USER_LIST
username = argument_list[-1]
if username == '-r':
......@@ -230,6 +231,33 @@ class SlapformatMixin(unittest.TestCase):
setattr(slapos.util, name, original_value)
del self.saved_slapos_util
def assertEqualCommands(self, seq1, seq2):
"""Assert that all items in seq1 are present in right order in seq2.
This is useful for ``logger.bucket_list`` where we save executed commands
which mix together with logging messages.
"""
if len(seq1) == 0:
return
assert len(seq1) <= len(seq2), "First argument should contain mandatory items\n"
if len(seq1) != len(seq2):
logging.getLogger('test.slap.format').warning("Comparing uneven sequences!\n")
print("\n".join(map(str, seq1)))
print("\n".join(map(str, seq2)))
# we cannot do simple filter s2 in s1 because commands might repeat
iter1, iter2 = iter(seq1), iter(seq2)
item1, item2 = next(iter1), next(iter2)
try:
while item1 != item2:
item2 = next(iter2)
item1 = next(iter1)
except StopIteration as e:
raise AssertionError(
"Following sequences differs at line \"{!s}\"\n{}\n!=\n{}\n".format(
item1,
"\n".join(map(str, seq1)),
"\n".join(map(str, seq2))))
def setUp(self):
config = FakeConfig()
config.dry_run = True
......@@ -290,14 +318,14 @@ class TestComputer(SlapformatMixin):
computer.instance_root = '/instance_root'
computer.software_root = '/software_root'
computer.construct()
self.assertEqual([
self.assertEqualCommands([
"makedirs('/instance_root', 493)",
"makedirs('/software_root', 493)",
"chown('/software_root', 0, 0)",
"chmod('/software_root', 493)"],
self.test_result.bucket)
self.assertEqual([
'ip addr list bridge',
# 'ip addr list bridge', # don't track non-functional commands
'groupadd slapsoft',
'useradd -d /software_root -g slapsoft slapsoft -r'
],
......@@ -311,7 +339,7 @@ class TestComputer(SlapformatMixin):
computer.instance_root = '/instance_root'
computer.software_root = '/software_root'
computer.construct(alter_user=False)
self.assertEqual([
self.assertEqualCommands([
"makedirs('/instance_root', 493)",
"makedirs('/software_root', 493)",
"chmod('/software_root', 493)"],
......@@ -328,13 +356,13 @@ class TestComputer(SlapformatMixin):
computer.instance_root = '/instance_root'
computer.software_root = '/software_root'
computer.construct(alter_network=False)
self.assertEqual([
self.assertEqualCommands([
"makedirs('/instance_root', 493)",
"makedirs('/software_root', 493)",
"chown('/software_root', 0, 0)",
"chmod('/software_root', 493)"],
self.test_result.bucket)
self.assertEqual([
self.assertEqualCommands([
'ip addr list bridge',
'groupadd slapsoft',
'useradd -d /software_root -g slapsoft slapsoft -r'
......@@ -349,15 +377,12 @@ class TestComputer(SlapformatMixin):
computer.instance_root = '/instance_root'
computer.software_root = '/software_root'
computer.construct(alter_network=False, alter_user=False)
self.assertEqual([
self.assertEqualCommands([
"makedirs('/instance_root', 493)",
"makedirs('/software_root', 493)",
"chmod('/software_root', 493)"],
self.test_result.bucket)
self.assertEqual([
'ip addr list bridge',
],
self.fakeCallAndRead.external_command_list)
self.assertEqualCommands([], self.fakeCallAndRead.external_command_list)
@unittest.skip("Not implemented")
def test_construct_prepared(self):
......@@ -379,7 +404,7 @@ class TestComputer(SlapformatMixin):
}
computer.construct()
self.assertEqual([
self.assertEqualCommands([
"makedirs('/instance_root', 493)",
"makedirs('/software_root', 493)",
"chown('/software_root', 0, 0)",
......@@ -389,7 +414,7 @@ class TestComputer(SlapformatMixin):
"chmod('/instance_root/partition', 488)"
],
self.test_result.bucket)
self.assertEqual([
self.assertEqualCommands([
'ip addr list bridge',
'groupadd slapsoft',
'useradd -d /software_root -g slapsoft slapsoft -r',
......@@ -397,12 +422,12 @@ class TestComputer(SlapformatMixin):
'useradd -d /instance_root/partition -g testuser -G slapsoft testuser -r',
'tunctl -t tap -u testuser',
'ip link set tap up',
'brctl show',
# 'brctl show', # don't track non-functional commands
'brctl addif bridge tap',
'ip addr add ip/255.255.255.255 dev bridge',
'ip addr list bridge',
# 'ip addr list bridge', # don't track non-functional commands
'ip addr add ip/ffff:ffff:ffff:ffff:: dev bridge',
'ip addr list bridge',
# 'ip addr list bridge', # don't track non-functional commands
],
self.fakeCallAndRead.external_command_list)
......@@ -427,7 +452,7 @@ class TestComputer(SlapformatMixin):
}
computer.construct(alter_user=False)
self.assertEqual([
self.assertEqualCommands([
"makedirs('/instance_root', 493)",
"makedirs('/software_root', 493)",
"chmod('/software_root', 493)",
......@@ -435,16 +460,16 @@ class TestComputer(SlapformatMixin):
"chmod('/instance_root/partition', 488)"
],
self.test_result.bucket)
self.assertEqual([
self.assertEqualCommands([
'ip addr list bridge',
'tunctl -t tap -u testuser',
'ip link set tap up',
'brctl show',
# 'brctl show', # don't track non-functional commands
'brctl addif bridge tap',
'ip addr add ip/255.255.255.255 dev bridge',
# 'ip addr list bridge',
# 'ip addr list bridge', # don't track non-functional commands
'ip addr add ip/ffff:ffff:ffff:ffff:: dev bridge',
'ip -6 addr list bridge',
# 'ip -6 addr list bridge', # don't track non-functional commands
],
self.fakeCallAndRead.external_command_list)
......@@ -474,7 +499,7 @@ class TestComputer(SlapformatMixin):
}
computer.construct(alter_user=False)
self.assertEqual([
self.assertEqualCommands([
"makedirs('/instance_root', 493)",
"makedirs('/software_root', 493)",
"chmod('/software_root', 493)",
......@@ -482,7 +507,7 @@ class TestComputer(SlapformatMixin):
"chmod('/instance_root/partition', 488)"
],
self.test_result.bucket)
self.assertEqual([
self.assertEqualCommands([
'ip addr list iface',
'tunctl -t tap -u testuser',
'ip link set tap up',
......@@ -490,7 +515,7 @@ class TestComputer(SlapformatMixin):
'route add -host 10.8.0.2 dev tap',
'ip addr add ip/255.255.255.255 dev iface',
'ip addr add ip/ffff:ffff:ffff:ffff:: dev iface',
'ip -6 addr list iface'
# 'ip -6 addr list iface' # don't track non-functional commands
],
self.fakeCallAndRead.external_command_list)
self.assertEqual(partition.tap.ipv4_addr, '10.8.0.2')
......@@ -518,7 +543,7 @@ class TestComputer(SlapformatMixin):
}
computer.construct(alter_network=False)
self.assertEqual([
self.assertEqualCommands([
"makedirs('/instance_root', 493)",
"makedirs('/software_root', 493)",
"chown('/software_root', 0, 0)",
......@@ -528,8 +553,8 @@ class TestComputer(SlapformatMixin):
"chmod('/instance_root/partition', 488)"
],
self.test_result.bucket)
self.assertEqual([
# 'ip addr list bridge',
self.assertEqualCommands([
# 'ip addr list bridge', # don't track non-functional commands
'groupadd slapsoft',
'useradd -d /software_root -g slapsoft slapsoft -r',
'groupadd testuser',
......@@ -560,7 +585,7 @@ class TestComputer(SlapformatMixin):
}
computer.construct(alter_network=False, alter_user=False)
self.assertEqual([
self.assertEqualCommands([
"makedirs('/instance_root', 493)",
"makedirs('/software_root', 493)",
"chmod('/software_root', 493)",
......@@ -568,12 +593,12 @@ class TestComputer(SlapformatMixin):
"chmod('/instance_root/partition', 488)"
],
self.test_result.bucket)
self.assertEqual([
'ip addr list bridge',
self.assertEqualCommands([
# 'ip addr list bridge', # don't track non-functional commands
'ip addr add ip/255.255.255.255 dev bridge',
# 'ip addr list bridge',
# 'ip addr list bridge', # don't track non-functional commands
'ip addr add ip/ffff:ffff:ffff:ffff:: dev bridge',
'ip -6 addr list bridge',
# 'ip -6 addr list bridge', # don't track non-functional commands
],
self.fakeCallAndRead.external_command_list)
......@@ -601,7 +626,7 @@ class TestComputer(SlapformatMixin):
}
computer.construct(use_unique_local_address_block=True, alter_user=False, create_tap=False)
self.assertEqual([
self.assertEqualCommands([
"makedirs('/instance_root', 493)",
"makedirs('/software_root', 493)",
"chmod('/software_root', 493)",
......@@ -609,12 +634,12 @@ class TestComputer(SlapformatMixin):
"chmod('/instance_root/partition', 488)"
],
self.test_result.bucket)
self.assertEqual([
'ip addr list myinterface',
self.assertEqualCommands([
# 'ip addr list myinterface', # don't track non-functional commands
'ip address add dev myinterface fd00::1/64',
'ip addr add ip/255.255.255.255 dev myinterface',
'ip addr add ip/ffff:ffff:ffff:ffff:: dev myinterface',
'ip -6 addr list myinterface'
# 'ip -6 addr list myinterface' # don't track non-functional commands
],
self.fakeCallAndRead.external_command_list)
......@@ -622,7 +647,7 @@ class TestPartition(SlapformatMixin):
def test_createPath_no_alter_user(self):
self.partition.createPath(False)
self.assertEqual(
self.assertEqualCommands(
[
"mkdir('/part_path', 488)",
"chmod('/part_path', 488)"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment