def test_creates_device_with_domain_and_parent(self): parent = factory.make_Node() hostname = factory.make_name("device") mac1 = factory.make_mac_address() mac2 = factory.make_mac_address() domain = factory.make_Domain() form = DeviceWithMACsForm(data=get_QueryDict({ "hostname": hostname, "mac_addresses": [mac1, mac2], "parent": parent.system_id, "domain": domain.name, }), request=self.make_request()) self.assertTrue(form.is_valid(), dict(form.errors)) form.save() device = get_one(Device.objects.filter(hostname=hostname)) self.assertThat(device.hostname, Equals(hostname)) self.assertThat(device.domain, Equals(domain)) iface = get_one(Interface.objects.filter(mac_address=mac1)) self.assertThat(iface.node, Equals(device)) iface = get_one(Interface.objects.filter(mac_address=mac2)) self.assertThat(iface.node, Equals(device))
def change_password(self, params): """Update the authenticated user password.""" form = PasswordChangeForm(user=self.user, data=get_QueryDict(params)) if form.is_valid(): form.save() self.user.sshkeys_count = self.user.sshkey_set.count() self.user.machines_count = self.user.node_set.count() return self.full_dehydrate(self.user) else: raise HandlerValidationError(form.errors)
def admin_change_password(self, params): """As Admin, update another user's password.""" if not self.user.is_superuser: raise HandlerPermissionError() user = self.get_object(params) form = AdminPasswordChangeForm(user=user, data=get_QueryDict(params)) if form.is_valid(): form.save() else: raise HandlerValidationError(form.errors)
def test_creates_device_with_mac(self): hostname = factory.make_name("device") mac = factory.make_mac_address() form = DeviceWithMACsForm(data=get_QueryDict({ "hostname": hostname, "mac_addresses": mac }), request=self.make_request()) self.assertTrue(form.is_valid(), dict(form.errors)) form.save() device = get_one(Device.objects.filter(hostname=hostname)) self.assertThat(device.hostname, Equals(hostname)) iface = get_one(Interface.objects.filter(mac_address=mac)) self.assertThat(iface.node, Equals(device))
def preprocess_form(self, action, params): """Process the `params` to before passing the data to the form. Default implementation just converts `params` to a `QueryDict`. """ return get_QueryDict(params)