def test_machine_fromdict(self): hostname = factory.make_name("hostname") cores = random.randint(1, 8) cpu_speed = random.randint(1000, 2000) memory = random.randint(4096, 8192) interfaces = [dict() for _ in range(3)] block_devices = [ dict( size=random.randint(512, 1024), tags=[factory.make_name("tag") for _ in range(3)], ) for _ in range(3) ] pinned_cores = random.sample(range(10), 3) hugepages_backed = factory.pick_bool() machine_data = dict( hostname=hostname, architecture="amd64/generic", cores=cores, cpu_speed=cpu_speed, pinned_cores=pinned_cores, hugepages_backed=hugepages_backed, memory=memory, interfaces=interfaces, block_devices=block_devices, ) machine = RequestedMachine.fromdict(machine_data) self.assertThat(machine, IsInstance(RequestedMachine)) self.assertThat( machine, MatchesStructure( hostname=Equals(hostname), architecture=Equals("amd64/generic"), cores=Equals(cores), cpu_speed=Equals(cpu_speed), memory=Equals(memory), pinned_cores=Equals(pinned_cores), hugepages_backed=Equals(hugepages_backed), interfaces=MatchesListwise([ IsInstance(RequestedMachineInterface) for interface in interfaces ]), block_devices=MatchesListwise([ MatchesAll( IsInstance(RequestedMachineBlockDevice), MatchesStructure( size=Equals(block_device["size"]), tags=Equals(block_device["tags"]), ), ) for block_device in block_devices ]), ), )
def test_machine_fromdict(self): hostname = factory.make_name('hostname') cores = random.randint(1, 8) cpu_speed = random.randint(1000, 2000) memory = random.randint(4096, 8192) interfaces = [ dict() for _ in range(3) ] block_devices = [ dict(size=random.randint(512, 1024), tags=[ factory.make_name('tag') for _ in range(3) ]) for _ in range(3) ] machine_data = dict( hostname=hostname, architecture='amd64/generic', cores=cores, cpu_speed=cpu_speed, memory=memory, interfaces=interfaces, block_devices=block_devices) machine = RequestedMachine.fromdict(machine_data) self.assertThat(machine, IsInstance(RequestedMachine)) self.assertThat(machine, MatchesStructure( hostname=Equals(hostname), architecture=Equals('amd64/generic'), cores=Equals(cores), cpu_speed=Equals(cpu_speed), memory=Equals(memory), interfaces=MatchesListwise([ IsInstance(RequestedMachineInterface) for interface in interfaces ]), block_devices=MatchesListwise([ MatchesAll( IsInstance(RequestedMachineBlockDevice), MatchesStructure( size=Equals(block_device['size']), tags=Equals(block_device['tags']), ), ) for block_device in block_devices ]), ))
def fromString(self, inString): # Circular imports. from provisioningserver.drivers.pod import RequestedMachine data = super(AmpRequestedMachine, self).fromString(inString) return RequestedMachine.fromdict(data)