def test_is_updatable(self): """ Test node.is_updatable method """ for node in self.nodes: max_size = 12288 - 60 filename = random_file(max_size) images = [ TestImage(filename, "SOC_ELF"), TestImage(filename, "CDB"), TestImage(filename, "UBOOTENV") ] # should pass package = FirmwarePackage() package.images = images self.assertTrue(node.is_updatable(package)) # should fail if the firmware version is wrong package = FirmwarePackage() package.images = images package.version = "ECX-31415-v0.0.0" self.assertFalse(node.is_updatable(package)) # should fail if we specify a socman version package = FirmwarePackage() package.images = images package.required_socman_version = "0.0.1" self.assertFalse(node.is_updatable(package)) # should fail if we try to upload a slot2 package = FirmwarePackage() package.images = images package.config = "slot2" self.assertFalse(node.is_updatable(package)) # should fail if we upload an image that's too large package = FirmwarePackage() package.images = [TestImage(random_file(max_size + 1), "UBOOTENV")] self.assertFalse(node.is_updatable(package)) # should fail if we upload to a CDB partition that's in use package = FirmwarePackage() package.images = images self.assertFalse(node.is_updatable(package, partition_arg="ACTIVE"))