summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/networkd-test.py51
-rwxr-xr-xtest/sysv-generator-test.py35
2 files changed, 42 insertions, 44 deletions
diff --git a/test/networkd-test.py b/test/networkd-test.py
index 860c9f1898..3f917f0d9c 100755
--- a/test/networkd-test.py
+++ b/test/networkd-test.py
@@ -33,13 +33,13 @@
import errno
import os
+import shutil
+import socket
+import subprocess
import sys
+import tempfile
import time
import unittest
-import tempfile
-import subprocess
-import shutil
-import socket
HAVE_DNSMASQ = shutil.which('dnsmasq') is not None
@@ -93,8 +93,8 @@ class NetworkdTestingUtilities:
def write_network_dropin(self, unit_name, dropin_name, contents):
"""Write a network unit drop-in, and queue it to be removed."""
- dropin_dir = os.path.join(NETWORK_UNITDIR, "%s.d" % unit_name)
- dropin_path = os.path.join(dropin_dir, "%s.conf" % dropin_name)
+ dropin_dir = os.path.join(NETWORK_UNITDIR, "{}.d".format(unit_name))
+ dropin_path = os.path.join(dropin_dir, "{}.conf".format(dropin_name))
os.makedirs(dropin_dir, exist_ok=True)
self.addCleanup(os.rmdir, dropin_dir)
@@ -130,7 +130,7 @@ class NetworkdTestingUtilities:
# Wait for the requested interfaces, but don't fail for them.
subprocess.call([NETWORKD_WAIT_ONLINE, '--timeout=5'] +
- ['--interface=%s' % iface for iface in kwargs])
+ ['--interface={}'.format(iface) for iface in kwargs])
# Validate each link state found in the networkctl output.
out = subprocess.check_output(['networkctl', '--no-legend']).rstrip()
@@ -142,13 +142,12 @@ class NetworkdTestingUtilities:
actual = fields[-1]
if (actual != expected and
not (expected == 'managed' and actual != 'unmanaged')):
- self.fail("Link %s expects state %s, found %s" %
- (iface, expected, actual))
+ self.fail("Link {} expects state {}, found {}".format(iface, expected, actual))
interfaces.remove(iface)
# Ensure that all requested interfaces have been covered.
if interfaces:
- self.fail("Missing links in status output: %s" % interfaces)
+ self.fail("Missing links in status output: {}".format(interfaces))
class BridgeTest(NetworkdTestingUtilities, unittest.TestCase):
@@ -257,7 +256,7 @@ class ClientTestBase(NetworkdTestingUtilities):
def show_journal(self, unit):
'''Show journal of given unit since start of the test'''
- print('---- %s ----' % unit)
+ print('---- {} ----'.format(unit))
subprocess.check_output(['journalctl', '--sync'])
sys.stdout.flush()
subprocess.call(['journalctl', '-b', '--no-pager', '--quiet',
@@ -287,10 +286,10 @@ class ClientTestBase(NetworkdTestingUtilities):
raise
self.write_network(self.config, '''\
[Match]
-Name=%s
+Name={}
[Network]
-DHCP=%s
-%s''' % (self.iface, dhcp_mode, extra_opts))
+DHCP={}
+{}'''.format(self.iface, dhcp_mode, extra_opts))
if coldplug:
# create interface first, then start networkd
@@ -335,8 +334,8 @@ DHCP=%s
# check networkctl state
out = subprocess.check_output(['networkctl'])
- self.assertRegex(out, (r'%s\s+ether\s+[a-z-]+\s+unmanaged' % self.if_router).encode())
- self.assertRegex(out, (r'%s\s+ether\s+routable\s+configured' % self.iface).encode())
+ self.assertRegex(out, (r'{}\s+ether\s+[a-z-]+\s+unmanaged'.format(self.if_router)).encode())
+ self.assertRegex(out, (r'{}\s+ether\s+routable\s+configured'.format(self.iface)).encode())
out = subprocess.check_output(['networkctl', 'status', self.iface])
self.assertRegex(out, br'Type:\s+ether')
@@ -352,11 +351,11 @@ DHCP=%s
except (AssertionError, subprocess.CalledProcessError):
# show networkd status, journal, and DHCP server log on failure
with open(os.path.join(NETWORK_UNITDIR, self.config)) as f:
- print('\n---- %s ----\n%s' % (self.config, f.read()))
+ print('\n---- {} ----\n{}'.format(self.config, f.read()))
print('---- interface status ----')
sys.stdout.flush()
subprocess.call(['ip', 'a', 'show', 'dev', self.iface])
- print('---- networkctl status %s ----' % self.iface)
+ print('---- networkctl status {} ----'.format(self.iface))
sys.stdout.flush()
subprocess.call(['networkctl', 'status', self.iface])
self.show_journal('systemd-networkd.service')
@@ -513,7 +512,7 @@ class DnsmasqClientTest(ClientTestBase, unittest.TestCase):
'''Print DHCP server log for debugging failures'''
with open(self.dnsmasq_log) as f:
- sys.stdout.write('\n\n---- dnsmasq log ----\n%s\n------\n\n' % f.read())
+ sys.stdout.write('\n\n---- dnsmasq log ----\n{}\n------\n\n'.format(f.read()))
def test_resolved_domain_restricted_dns(self):
'''resolved: domain-restricted DNS servers'''
@@ -523,10 +522,10 @@ class DnsmasqClientTest(ClientTestBase, unittest.TestCase):
self.create_iface(dnsmasq_opts=['--address=/#/192.168.42.1'])
self.write_network('general.network', '''\
[Match]
-Name=%s
+Name={}
[Network]
DHCP=ipv4
-IPv6AcceptRA=False''' % self.iface)
+IPv6AcceptRA=False'''.format(self.iface))
# create second device/dnsmasq for a .company/.lab VPN interface
# static IPs for simplicity
@@ -653,7 +652,7 @@ Domains= ~company ~lab''')
self.addCleanup(subprocess.call, ['umount', '/etc/hostname'])
subprocess.check_call(['systemctl', 'stop', 'systemd-hostnamed.service'])
- self.create_iface(dnsmasq_opts=['--dhcp-host=%s,192.168.5.210,testgreen' % self.iface_mac])
+ self.create_iface(dnsmasq_opts=['--dhcp-host={},192.168.5.210,testgreen'.format(self.iface_mac)])
self.do_test(coldplug=None, extra_opts='IPv6AcceptRA=False', dhcp_mode='ipv4')
try:
@@ -670,7 +669,7 @@ Domains= ~company ~lab''')
sys.stdout.write('[retry %i] ' % retry)
sys.stdout.flush()
else:
- self.fail('Transient hostname not found in hostnamectl:\n%s' % out.decode())
+ self.fail('Transient hostname not found in hostnamectl:\n{}'.format(out.decode()))
# and also applied to the system
self.assertEqual(socket.gethostname(), 'testgreen')
except AssertionError:
@@ -688,7 +687,7 @@ Domains= ~company ~lab''')
self.writeConfig('/etc/hostname', orig_hostname)
subprocess.check_call(['systemctl', 'stop', 'systemd-hostnamed.service'])
- self.create_iface(dnsmasq_opts=['--dhcp-host=%s,192.168.5.210,testgreen' % self.iface_mac])
+ self.create_iface(dnsmasq_opts=['--dhcp-host={},192.168.5.210,testgreen'.format(self.iface_mac)])
self.do_test(coldplug=None, extra_opts='IPv6AcceptRA=False', dhcp_mode='ipv4')
try:
@@ -942,9 +941,9 @@ class MatchClientTest(unittest.TestCase, NetworkdTestingUtilities):
['addr', mac], ['addr', mac])
self.write_network('no-veth.network', """\
[Match]
-MACAddress=%s
+MACAddress={}
Name=!nonexistent *peer*
-[Network]""" % mac)
+[Network]""".format(mac))
subprocess.check_call(['systemctl', 'start', 'systemd-networkd'])
self.assert_link_states(test_veth='managed', test_peer='unmanaged')
diff --git a/test/sysv-generator-test.py b/test/sysv-generator-test.py
index 0b4710aeab..463ee3c555 100755
--- a/test/sysv-generator-test.py
+++ b/test/sysv-generator-test.py
@@ -19,15 +19,16 @@
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
-import unittest
-import sys
+import collections
import os
+import shutil
import subprocess
+import sys
import tempfile
-import shutil
-from glob import glob
-import collections
+import unittest
+
from configparser import RawConfigParser
+from glob import glob
sysv_generator = './systemd-sysv-generator'
@@ -112,22 +113,20 @@ class SysvGeneratorTest(unittest.TestCase):
keys.setdefault('Required-Stop', keys['Required-Start'])
keys.setdefault('Default-Start', '2 3 4 5')
keys.setdefault('Default-Stop', '0 1 6')
- keys.setdefault('Short-Description', 'test %s service' %
- name_without_sh)
- keys.setdefault('Description', 'long description for test %s service' %
- name_without_sh)
+ keys.setdefault('Short-Description', 'test {} service'.format(name_without_sh))
+ keys.setdefault('Description', 'long description for test {} service'.format(name_without_sh))
script = os.path.join(self.init_d_dir, fname)
with open(script, 'w') as f:
f.write('#!/bin/init-d-interpreter\n### BEGIN INIT INFO\n')
for k, v in keys.items():
if v is not None:
- f.write('#%20s %s\n' % (k + ':', v))
+ f.write('#{:>20} {}\n'.format(k + ':', v))
f.write('### END INIT INFO\ncode --goes here\n')
os.chmod(script, 0o755)
if enable:
def make_link(prefix, runlevel):
- d = os.path.join(self.rcnd_dir, 'rc%s.d' % runlevel)
+ d = os.path.join(self.rcnd_dir, 'rc{}.d'.format(runlevel))
if not os.path.isdir(d):
os.mkdir(d)
os.symlink('../init.d/' + fname, os.path.join(d, prefix + fname))
@@ -146,7 +145,7 @@ class SysvGeneratorTest(unittest.TestCase):
# should be enabled
for target in all_targets:
- link = os.path.join(self.out_dir, '%s.target.wants' % target, unit)
+ link = os.path.join(self.out_dir, '{}.target.wants'.format(target), unit)
if target in targets:
unit_file = os.readlink(link)
# os.path.exists() will fail on a dangling symlink
@@ -154,7 +153,7 @@ class SysvGeneratorTest(unittest.TestCase):
self.assertEqual(os.path.basename(unit_file), unit)
else:
self.assertFalse(os.path.exists(link),
- '%s unexpectedly exists' % link)
+ '{} unexpectedly exists'.format(link))
#
# test cases
@@ -188,9 +187,9 @@ class SysvGeneratorTest(unittest.TestCase):
self.assertEqual(s.get('Service', 'Type'), 'forking')
init_script = os.path.join(self.init_d_dir, 'foo')
self.assertEqual(s.get('Service', 'ExecStart'),
- '%s start' % init_script)
+ '{} start'.format(init_script))
self.assertEqual(s.get('Service', 'ExecStop'),
- '%s stop' % init_script)
+ '{} stop'.format(init_script))
self.assertNotIn('Overwriting', err)
@@ -276,7 +275,7 @@ class SysvGeneratorTest(unittest.TestCase):
d = os.path.join(self.rcnd_dir, 'rc2.d')
if not os.path.isdir(d):
os.mkdir(d)
- os.symlink('../init.d/' + name, os.path.join(d, 'S%02i%s' % (prio, name)))
+ os.symlink('../init.d/' + name, os.path.join(d, 'S{:>2}{}'.format(prio, name)))
err, results = self.run_generator()
self.assertEqual(sorted(results), ['consumer.service', 'provider.service'])
@@ -351,9 +350,9 @@ class SysvGeneratorTest(unittest.TestCase):
# calls correct script with .sh
init_script = os.path.join(self.init_d_dir, 'foo.sh')
self.assertEqual(s.get('Service', 'ExecStart'),
- '%s start' % init_script)
+ '{} start'.format(init_script))
self.assertEqual(s.get('Service', 'ExecStop'),
- '%s stop' % init_script)
+ '{} stop'.format(init_script))
self.assert_enabled('foo.service', ['multi-user', 'graphical'])