def test_correct_kmod_signing_command_executed_no_keys(self): # Check that calling signKmod() will generate no commands when # no keys are present. self.setUpKmodKeys(create=False) fake_call = FakeMethod(result=0) self.useFixture(MonkeyPatch("subprocess.call", fake_call)) upload = SigningUpload() upload.generateKmodKeys = FakeMethod() upload.setTargetDirectory(self.archive, "test_1.0_amd64.tar.gz", "distroseries") upload.signKmod('t.ko') self.assertEqual(0, fake_call.call_count) self.assertEqual(0, upload.generateKmodKeys.call_count)
def test_create_kmod_keys_autokey_off(self): # Keys are not created. self.setUpKmodKeys(create=False) self.assertFalse(os.path.exists(self.kmod_pem)) self.assertFalse(os.path.exists(self.kmod_x509)) fake_call = FakeMethod(result=0) self.useFixture(MonkeyPatch("subprocess.call", fake_call)) upload = SigningUpload() upload.callLog = FakeMethodCallLog(upload=upload) upload.setTargetDirectory(self.archive, "test_1.0_amd64.tar.gz", "distroseries") upload.signKmod(os.path.join(self.makeTemporaryDirectory(), 't.ko')) self.assertEqual(0, upload.callLog.caller_count('Kmod keygen key')) self.assertEqual(0, upload.callLog.caller_count('Kmod keygen cert')) self.assertFalse(os.path.exists(self.kmod_pem)) self.assertFalse(os.path.exists(self.kmod_x509))
def test_correct_kmod_signing_command_executed(self): # Check that calling signKmod() will generate the expected command # when appropriate keys are present. self.setUpKmodKeys() fake_call = FakeMethod(result=0) self.useFixture(MonkeyPatch("subprocess.call", fake_call)) upload = SigningUpload() upload.generateKmodKeys = FakeMethod() upload.setTargetDirectory(self.archive, "test_1.0_amd64.tar.gz", "distroseries") upload.signKmod('t.ko') self.assertEqual(1, fake_call.call_count) # Assert command form. args = fake_call.calls[0][0][0] expected_cmd = [ 'kmodsign', '-D', 'sha512', self.kmod_pem, self.kmod_x509, 't.ko', 't.ko.sig' ] self.assertEqual(expected_cmd, args) self.assertEqual(0, upload.generateKmodKeys.call_count)
def process(self): self.tarfile.close() self.buffer.close() upload = SigningUpload() upload.signUefi = FakeMethod() upload.signKmod = FakeMethod() upload.signOpal = FakeMethod() # Under no circumstances is it safe to execute actual commands. fake_call = FakeMethod(result=0) self.useFixture(MonkeyPatch("subprocess.call", fake_call)) upload.process(self.archive, self.path, self.suite) self.assertEqual(0, fake_call.call_count) return upload