def test__calls_omshell_correctly(self): server_address = factory.make_string() shared_key = factory.make_string() ip_address = factory.make_ip_address(ipv6=self.ipv6) shell = Omshell(server_address, shared_key, ipv6=self.ipv6) # Instead of calling a real omshell, we'll just record the # parameters passed to Popen. run = self.patch(shell, "_run") run.return_value = (0, b"\nends = 00:00:00:00") expected_script = dedent("""\ server {server} port {port} key omapi_key {key} connect new lease set ip-address = {ip} open set ends = 00:00:00:00 update """) expected_script = expected_script.format( server=server_address, port=self.port, key=shared_key, ip=ip_address, ) shell.nullify_lease(ip_address) self.assertThat(run, MockCalledOnceWith(expected_script.encode("utf-8")))
def test__considers_nonexistent_lease_a_success(self): server_address = factory.make_string() shared_key = factory.make_string() ip_address = factory.make_ip_address(ipv6=self.ipv6) shell = Omshell(server_address, shared_key, ipv6=self.ipv6) output = (b"obj: <null>\nobj: lease\nobj: lease\n" b"can't open object: not found\nobj: lease\n") self.patch(shell, "_run").return_value = (0, output) shell.nullify_lease(ip_address) # No exception. self.assertThat(shell._run, MockCalledOnceWith(ANY))