57
57
class TestNodeGroupFormField(MAASServerTestCase):
59
59
def test_label_from_instance_tolerates_missing_interface(self):
60
nodegroup = factory.make_node_group()
60
nodegroup = factory.make_NodeGroup()
61
61
nodegroup.nodegroupinterface_set.all().delete()
64
64
NodeGroupFormField().label_from_instance(nodegroup))
66
66
def test_label_from_instance_shows_name_and_address(self):
67
nodegroup = factory.make_node_group()
68
interface = factory.make_node_group_interface(
67
nodegroup = factory.make_NodeGroup()
68
interface = factory.make_NodeGroupInterface(
69
69
nodegroup, management=NODEGROUPINTERFACE_MANAGEMENT.DHCP)
71
71
'%s: %s' % (nodegroup.name, interface.ip),
79
79
[field.clean(spelling) for spelling in spellings_for_none])
81
81
def test_clean_accepts_nodegroup(self):
82
nodegroup = factory.make_node_group()
82
nodegroup = factory.make_NodeGroup()
83
83
self.assertEqual(nodegroup, NodeGroupFormField().clean(nodegroup))
85
85
def test_clean_accepts_id_as_unicode(self):
86
nodegroup = factory.make_node_group()
86
nodegroup = factory.make_NodeGroup()
89
89
NodeGroupFormField().clean("%s" % nodegroup.id))
91
91
def test_clean_accepts_id_as_bytes(self):
92
nodegroup = factory.make_node_group()
92
nodegroup = factory.make_NodeGroup()
95
95
NodeGroupFormField().clean(("%s" % nodegroup.id).encode('ascii')))
97
97
def test_clean_accepts_uuid(self):
98
nodegroup = factory.make_node_group()
98
nodegroup = factory.make_NodeGroup()
101
101
NodeGroupFormField().clean(nodegroup.uuid))
103
103
def test_clean_accepts_uuid_as_bytes(self):
104
nodegroup = factory.make_node_group()
104
nodegroup = factory.make_NodeGroup()
105
105
self.assertEqual(
107
107
NodeGroupFormField().clean(nodegroup.uuid.encode('ascii')))
109
109
def test_clean_accepts_cluster_name(self):
110
nodegroup = factory.make_node_group()
110
nodegroup = factory.make_NodeGroup()
111
111
self.assertEqual(
113
113
NodeGroupFormField().clean(nodegroup.cluster_name))
115
115
def test_clean_accepts_cluster_name_as_bytes(self):
116
nodegroup = factory.make_node_group()
116
nodegroup = factory.make_NodeGroup()
117
117
self.assertEqual(
119
119
NodeGroupFormField().clean(nodegroup.cluster_name.encode('ascii')))
122
122
# This cluster has a name that looks just like a number. Pick a number
123
123
# that's highly unlikely to clash with the node's ID.
124
124
cluster_name = '%s' % randint(1000000, 10000000)
125
nodegroup = factory.make_node_group(cluster_name=cluster_name)
125
nodegroup = factory.make_NodeGroup(cluster_name=cluster_name)
126
126
self.assertEqual(nodegroup, NodeGroupFormField().clean(cluster_name))
128
128
def test_clean_rejects_unknown_nodegroup(self):
223
223
def test_django_serializes_MAC_to_JSON(self):
224
mac = factory.make_mac_address()
224
mac = factory.make_MACAddress()
225
225
query = MACAddress.objects.filter(id=mac.id)
226
226
output = serializers.serialize('json', query)
227
227
self.assertIn(json.dumps(mac.mac_address.get_raw()), output)
266
266
class TestMACAddressField(MAASServerTestCase):
268
268
def test_mac_address_is_stored_normalized_and_loaded(self):
269
stored_mac = factory.make_mac_address(' AA-bb-CC-dd-EE-Ff ')
269
stored_mac = factory.make_MACAddress(' AA-bb-CC-dd-EE-Ff ')
270
270
stored_mac.save()
271
271
loaded_mac = MACAddress.objects.get(id=stored_mac.id)
272
272
self.assertEqual('aa:bb:cc:dd:ee:ff', loaded_mac.mac_address)