tests: various fixes
- Fix str/bytes - Call skipTest as early as possible - before doing any setup - Fix networking tests - configuration commands needs to be called as root (missing user= argument). - Fix setting firewall - policy is no longer changeable
This commit is contained in:
		
							parent
							
								
									ed3001da99
								
							
						
					
					
						commit
						d96d4a94e1
					
				@ -191,7 +191,7 @@ Test package
 | 
				
			|||||||
                    self.template))
 | 
					                    self.template))
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                self.skipTest('createrepo failed with code {}, '
 | 
					                self.skipTest('createrepo failed with code {}, '
 | 
				
			||||||
                    'cannot perform the test'.format(retcode))
 | 
					                    'cannot perform the test'.format(e.returncode))
 | 
				
			||||||
        self.start_repo()
 | 
					        self.start_repo()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def start_repo(self):
 | 
					    def start_repo(self):
 | 
				
			||||||
 | 
				
			|||||||
@ -30,6 +30,7 @@ import unittest
 | 
				
			|||||||
import time
 | 
					import time
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import qubes.tests
 | 
					import qubes.tests
 | 
				
			||||||
 | 
					import qubes.firewall
 | 
				
			||||||
import qubes.vm.appvm
 | 
					import qubes.vm.appvm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class NcVersion:
 | 
					class NcVersion:
 | 
				
			||||||
@ -50,7 +51,7 @@ class VmNetworkingMixin(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    def run_cmd(self, vm, cmd, user="root"):
 | 
					    def run_cmd(self, vm, cmd, user="root"):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.loop.run_until_complete(vm.run_for_stdio(cmd))
 | 
					            self.loop.run_until_complete(vm.run_for_stdio(cmd, user=user))
 | 
				
			||||||
        except subprocess.CalledProcessError as e:
 | 
					        except subprocess.CalledProcessError as e:
 | 
				
			||||||
            return e.returncode
 | 
					            return e.returncode
 | 
				
			||||||
        return 0
 | 
					        return 0
 | 
				
			||||||
@ -196,7 +197,7 @@ class VmNetworkingMixin(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        # block all for first
 | 
					        # block all for first
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.testvm1.firewall.policy = 'drop'
 | 
					        self.testvm1.firewall.rules = [qubes.firewall.Rule(action='drop')]
 | 
				
			||||||
        self.testvm1.firewall.save()
 | 
					        self.testvm1.firewall.save()
 | 
				
			||||||
        self.loop.run_until_complete(self.testvm1.start())
 | 
					        self.loop.run_until_complete(self.testvm1.start())
 | 
				
			||||||
        self.assertTrue(self.proxy.is_running())
 | 
					        self.assertTrue(self.proxy.is_running())
 | 
				
			||||||
@ -252,7 +253,6 @@ class VmNetworkingMixin(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            # block all except target
 | 
					            # block all except target
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            self.testvm1.firewall.policy = 'drop'
 | 
					 | 
				
			||||||
            self.testvm1.firewall.rules = [
 | 
					            self.testvm1.firewall.rules = [
 | 
				
			||||||
                qubes.firewall.Rule(None, action='accept', dsthost=self.test_ip,
 | 
					                qubes.firewall.Rule(None, action='accept', dsthost=self.test_ip,
 | 
				
			||||||
                    proto='tcp', dstports=1234),
 | 
					                    proto='tcp', dstports=1234),
 | 
				
			||||||
@ -267,10 +267,10 @@ class VmNetworkingMixin(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            # allow all except target
 | 
					            # allow all except target
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            self.testvm1.firewall.policy = 'accept'
 | 
					 | 
				
			||||||
            self.testvm1.firewall.rules = [
 | 
					            self.testvm1.firewall.rules = [
 | 
				
			||||||
                qubes.firewall.Rule(None, action='drop', dsthost=self.test_ip,
 | 
					                qubes.firewall.Rule(None, action='drop', dsthost=self.test_ip,
 | 
				
			||||||
                    proto='tcp', dstports=1234),
 | 
					                    proto='tcp', dstports=1234),
 | 
				
			||||||
 | 
					                qubes.firewall.Rule(action='accept'),
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
            self.testvm1.firewall.save()
 | 
					            self.testvm1.firewall.save()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -420,7 +420,6 @@ class VmNetworkingMixin(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        # block all but ICMP and DNS
 | 
					        # block all but ICMP and DNS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.testvm1.firewall.policy = 'drop'
 | 
					 | 
				
			||||||
        self.testvm1.firewall.rules = [
 | 
					        self.testvm1.firewall.rules = [
 | 
				
			||||||
            qubes.firewall.Rule(None, action='accept', proto='icmp'),
 | 
					            qubes.firewall.Rule(None, action='accept', proto='icmp'),
 | 
				
			||||||
            qubes.firewall.Rule(None, action='accept', specialtarget='dns'),
 | 
					            qubes.firewall.Rule(None, action='accept', specialtarget='dns'),
 | 
				
			||||||
@ -610,7 +609,6 @@ class VmNetworkingMixin(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        # block all but ICMP and DNS
 | 
					        # block all but ICMP and DNS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.testvm1.firewall.policy = 'drop'
 | 
					 | 
				
			||||||
        self.testvm1.firewall.rules = [
 | 
					        self.testvm1.firewall.rules = [
 | 
				
			||||||
            qubes.firewall.Rule(None, action='accept', proto='icmp'),
 | 
					            qubes.firewall.Rule(None, action='accept', proto='icmp'),
 | 
				
			||||||
            qubes.firewall.Rule(None, action='accept', specialtarget='dns'),
 | 
					            qubes.firewall.Rule(None, action='accept', specialtarget='dns'),
 | 
				
			||||||
@ -728,6 +726,10 @@ class VmUpdatesMixin(object):
 | 
				
			|||||||
        return 0
 | 
					        return 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def setUp(self):
 | 
					    def setUp(self):
 | 
				
			||||||
 | 
					        if not self.template.count('debian') and \
 | 
				
			||||||
 | 
					                not self.template.count('fedora'):
 | 
				
			||||||
 | 
					            self.skipTest("Template {} not supported by this test".format(
 | 
				
			||||||
 | 
					                self.template))
 | 
				
			||||||
        super(VmUpdatesMixin, self).setUp()
 | 
					        super(VmUpdatesMixin, self).setUp()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.update_cmd = None
 | 
					        self.update_cmd = None
 | 
				
			||||||
@ -750,9 +752,6 @@ class VmUpdatesMixin(object):
 | 
				
			|||||||
            self.install_cmd = cmd + " install -y {}"
 | 
					            self.install_cmd = cmd + " install -y {}"
 | 
				
			||||||
            self.install_test_cmd = "rpm -q {}"
 | 
					            self.install_test_cmd = "rpm -q {}"
 | 
				
			||||||
            self.exit_code_ok = [0, 100]
 | 
					            self.exit_code_ok = [0, 100]
 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            self.skipTest("Template {} not supported by this test".format(
 | 
					 | 
				
			||||||
                self.template))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.init_default_template(self.template)
 | 
					        self.init_default_template(self.template)
 | 
				
			||||||
        self.init_networking()
 | 
					        self.init_networking()
 | 
				
			||||||
@ -818,7 +817,7 @@ Description: Test package'''.format(pkg=pkg_file_name).encode('utf-8')))
 | 
				
			|||||||
                >> Release
 | 
					                >> Release
 | 
				
			||||||
            '''.format(p='main/binary-amd64/Packages',
 | 
					            '''.format(p='main/binary-amd64/Packages',
 | 
				
			||||||
                    z='main/binary-amd64/Packages.gz'),
 | 
					                    z='main/binary-amd64/Packages.gz'),
 | 
				
			||||||
            input='''\
 | 
					            input=b'''\
 | 
				
			||||||
Label: Test repo
 | 
					Label: Test repo
 | 
				
			||||||
Suite: test
 | 
					Suite: test
 | 
				
			||||||
Codename: test
 | 
					Codename: test
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user