def test_leases(self):
        from ddwrtnvram import readNvram, writeNvram
        from nvramlogging import getTestLogger
        logger = getTestLogger()
        nvram = readNvram('./test/static.lease.23.bin', logger)
        router = Router(nvram)
        leases = router.leases
        self.assertEqual(len(leases), 2)
        self.assertEqual(leases[0].hostname, "raspberrypi")
        self.assertEqual(leases[1].hostname, "raspberrypi2")
        from lease import Lease
        printerLease = Lease({
            "hostname": "printer",
            "mac_address": "aa:bb:f8:43:f6:dd",
            "ip_address": "192.168.235.88",
            "lease_time": "500"
        })
        router.addLease(printerLease)
        leases = router.leases
        self.assertEqual(len(leases), 3)
        self.assertEqual(router.nvram['static_leasenum'], '3')
        self.assertEqual(leases[0].hostname, "printer")
        self.assertEqual(leases[1].hostname, "raspberrypi")
        self.assertEqual(leases[2].hostname, "raspberrypi2")
        self.assertEqual(
            router.leasesStr(),
            "AA:BB:F8:43:F6:DD=printer=192.168.235.88=500 B8:27:EB:5E:9C:C0=raspberrypi=192.168.23.41=3600 B8:27:EB:5E:9C:C1=raspberrypi2=192.168.23.42=3601 "
        )

        # now write, read and then retest
        writeNvram('./test/test.static.leases.router.bin', router.nvram,
                   logger)
        nvram = readNvram('./test/test.static.leases.router.bin', logger)
        router = Router(nvram)
        leases = router.leases
        self.assertEqual(len(leases), 3)
        self.assertEqual(router.nvram['static_leasenum'], '3')
        self.assertEqual(leases[1].hostname, "raspberrypi")
        self.assertEqual(leases[2].hostname, "raspberrypi2")
        self.assertEqual(leases[0].hostname, "printer")
    def test_leases_router(self):
        logger = getTestLogger()
        nvram = readNvram("./test/static.lease.23.bin", logger)
        router = Router(nvram)
        s = router.leasesStr()
        shouldBe = 'B8:27:EB:5E:9C:C0=raspberrypi=192.168.23.41=3600 B8:27:EB:5E:9C:C1=raspberrypi2=192.168.23.42=3601 '
        self.assertEqual(s, shouldBe)
        self.assertEqual(s, router.nvram['static_leases'])
        self.assertEqual(router.nvram['static_leasenum'], '2')

        leaseDict = {
            "hostname": "Host1",
            "mac_address": "aa:bb:f8:43:f6:dd",
            "ip_address": "192.168.235.88",
            "lease_time": "500"
        }

        lease = Lease(leaseDict)
        router.addLease(lease)
        self.assertEqual(len(router.leases), 3)
        self.assertEqual(router.nvram['static_leasenum'], '3')
        s = router.leasesStr()
        shouldBe = "AA:BB:F8:43:F6:DD=host1=192.168.235.88=500 B8:27:EB:5E:9C:C0=raspberrypi=192.168.23.41=3600 B8:27:EB:5E:9C:C1=raspberrypi2=192.168.23.42=3601 "
        self.assertEqual(s, shouldBe)