Example #1
0
    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")))
Example #2
0
    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))