def test_get(self): user = factory.make_User() handler = DiscoveryHandler(user, {}, None) discovery = factory.make_Discovery() self.assertEqual( self.dehydrate_discovery(discovery), handler.get({"discovery_id": discovery.discovery_id}), )
def test_raises_if_missing_mac(self): user = factory.make_User() handler = DiscoveryHandler(user, {}, None) disco = factory.make_Discovery() num_discoveries = Discovery.objects.count() self.assertThat(num_discoveries, Equals(1)) with ExpectedException(HandlerPermissionError): handler.delete_by_mac_and_ip(dict(ip=disco.ip))
def test_raises_if_not_admin(self): user = factory.make_User() handler = DiscoveryHandler(user, {}, None) factory.make_Discovery() num_discoveries = Discovery.objects.count() self.assertThat(num_discoveries, Equals(1)) with ExpectedException(HandlerPermissionError): handler.clear()
def test_clears_all_by_default(self): user = factory.make_admin() handler = DiscoveryHandler(user, {}, None) factory.make_Discovery() num_discoveries = Discovery.objects.count() self.assertThat(num_discoveries, Equals(1)) handler.clear() num_discoveries = Discovery.objects.count() self.assertThat(num_discoveries, Equals(0))
def test_list(self): user = factory.make_User() handler = DiscoveryHandler(user, {}, None) factory.make_Discovery() factory.make_Discovery() expected_discoveries = [ self.dehydrate_discovery(discovery, for_list=True) for discovery in Discovery.objects.all() ] self.assertItemsEqual(expected_discoveries, handler.list({}))
def test_deletes_discovery_and_returns_number_deleted(self): user = factory.make_admin() handler = DiscoveryHandler(user, {}, None) disco = factory.make_Discovery() num_discoveries = Discovery.objects.count() self.assertThat(num_discoveries, Equals(1)) result = handler.delete_by_mac_and_ip( dict(ip=disco.ip, mac=disco.mac_address)) num_discoveries = Discovery.objects.count() self.assertThat(num_discoveries, Equals(0)) self.assertThat(result, Equals(1))
def test_clears_mdns_only_upon_request(self): user = factory.make_admin() handler = DiscoveryHandler(user, {}, None) factory.make_Discovery(hostname="useful-towel") num_discoveries = Discovery.objects.count() num_mdns = MDNS.objects.count() self.assertThat(num_discoveries, Equals(1)) self.assertThat(num_mdns, Equals(1)) handler.clear({"mdns": True}) num_discoveries = Discovery.objects.count() num_mdns = MDNS.objects.count() self.assertThat(num_discoveries, Equals(1)) self.assertThat(num_mdns, Equals(0))
def test_list_orders_by_creation_date(self): user = factory.make_User() handler = DiscoveryHandler(user, {}, None) now = datetime.now() d0 = factory.make_Discovery(created=now) d4 = factory.make_Discovery(created=(now + timedelta(days=4))) d3 = factory.make_Discovery(created=(now + timedelta(days=3))) d1 = factory.make_Discovery(created=(now + timedelta(days=1))) d2 = factory.make_Discovery(created=(now + timedelta(days=2))) # Test for the expected order independent of how the database # decided to sort. expected_discoveries = [ self.dehydrate_discovery(discovery, for_list=True) for discovery in [d0, d1, d2, d3, d4] ] self.assertEquals(expected_discoveries, handler.list({}))
def test_list_starts_after_first_seen(self): user = factory.make_User() handler = DiscoveryHandler(user, {}, None) now = datetime.now() factory.make_Discovery(created=now) d4 = factory.make_Discovery(created=(now + timedelta(days=4))) d3 = factory.make_Discovery(created=(now + timedelta(days=3))) factory.make_Discovery(created=(now + timedelta(days=1))) factory.make_Discovery(created=(now + timedelta(days=2))) first_seen = now + timedelta(days=2) first_seen = str( time.mktime(first_seen.timetuple()) + first_seen.microsecond / 1e6) # Test for the expected order independent of how the database # decided to sort. expected_discoveries = [ self.dehydrate_discovery(discovery, for_list=True) for discovery in [d3, d4] ] self.assertEquals(expected_discoveries, handler.list({"start": first_seen}))