1
# Copyright 2016 Canonical Ltd. This software is licensed under the
2
# GNU Affero General Public License version 3 (see the file LICENSE).
4
"""Tests for `maasserver.websockets.handlers.discovery`"""
8
from maasserver.dbviews import register_view
9
from maasserver.models.discovery import Discovery
10
from maasserver.testing.factory import factory
11
from maasserver.testing.testcase import MAASServerTestCase
12
from maasserver.websockets.handlers.discovery import DiscoveryHandler
13
from maasserver.websockets import dehydrate_datetime
16
class TestDiscoveryHandler(MAASServerTestCase):
20
register_view("maasserver_discovery")
22
def dehydrate_discovery(self, discovery, for_list=False):
24
"discovery_id": discovery.discovery_id,
25
"fabric": discovery.fabric_id,
26
"fabric_name": discovery.fabric_name,
27
"hostname": discovery.hostname,
30
"mdns": discovery.mdns_id,
31
"mac_address": discovery.mac_address,
32
"neighbour": discovery.neighbour_id,
33
"observer": discovery.observer_id,
34
"observer_hostname": discovery.observer_hostname,
35
"observer_interface": discovery.observer_interface_id,
36
"observer_interface_name": discovery.observer_interface_name,
37
"observer_system_id": discovery.observer_system_id,
39
"vlan": discovery.vlan_id,
40
"last_seen": dehydrate_datetime(discovery.last_seen)
45
user = factory.make_User()
46
handler = DiscoveryHandler(user, {})
47
discovery = factory.make_Discovery()
49
self.dehydrate_discovery(discovery),
50
handler.get({"discovery_id": discovery.discovery_id}))
53
user = factory.make_User()
54
handler = DiscoveryHandler(user, {})
55
factory.make_Discovery()
56
factory.make_Discovery()
57
expected_discoveries = [
58
self.dehydrate_discovery(discovery, for_list=True)
59
for discovery in Discovery.objects.all()
61
self.assertItemsEqual(