|
31 | 31 | " with open(lock_file, 'r') as file:\n",
|
32 | 32 | " data = json.load(file)\n",
|
33 | 33 | "\n",
|
34 |
| - " return data \n", |
| 34 | + " return data\n", |
35 | 35 | "\n",
|
36 | 36 | "def get_expected_version(dependency_name: str) -> str:\n",
|
37 | 37 | " raw_value = expected_versions.get(dependency_name)\n",
|
38 | 38 | " raw_version = re.sub(r'^\\D+', '', raw_value)\n",
|
39 | 39 | " return get_major_minor(raw_version)\n",
|
40 | 40 | "\n",
|
41 | 41 | "class TestPytorchNotebook(unittest.TestCase):\n",
|
42 |
| - " \n", |
| 42 | + "\n", |
43 | 43 | " def test_python_version(self):\n",
|
44 | 44 | " expected_major_minor = get_expected_version('Python')\n",
|
45 |
| - " actual_major_minor = '.'.join(python_version().split('.')[:2]) \n", |
| 45 | + " actual_major_minor = '.'.join(python_version().split('.')[:2])\n", |
46 | 46 | " self.assertEqual(actual_major_minor, expected_major_minor, \"incorrect version\")\n",
|
47 |
| - " \n", |
| 47 | + "\n", |
48 | 48 | " def test_torch_version(self):\n",
|
49 | 49 | " expected_major_minor = get_expected_version('PyTorch')\n",
|
50 |
| - " actual_major_minor = '.'.join(torch.__version__.split('.')[:2]) \n", |
| 50 | + " actual_major_minor = '.'.join(torch.__version__.split('.')[:2])\n", |
51 | 51 | " self.assertEqual(actual_major_minor, expected_major_minor, \"incorrect version\")\n",
|
52 |
| - " \n", |
| 52 | + "\n", |
53 | 53 | " def test_tensor_creation(self):\n",
|
54 | 54 | " # Test tensor creation\n",
|
55 | 55 | " tensor = torch.tensor([1, 2, 3])\n",
|
56 | 56 | " self.assertIsInstance(tensor, torch.Tensor)\n",
|
57 |
| - " \n", |
| 57 | + "\n", |
58 | 58 | " def test_tensor_operations(self):\n",
|
59 | 59 | " # Test tensor operations\n",
|
60 | 60 | " a = torch.tensor([1, 2, 3])\n",
|
61 | 61 | " b = torch.tensor([4, 5, 6])\n",
|
62 | 62 | " c = a + b\n",
|
63 | 63 | " self.assertTrue(torch.all(torch.eq(c, torch.tensor([5, 7, 9]))))\n",
|
64 |
| - " \n", |
| 64 | + "\n", |
65 | 65 | " def test_tensor_shape(self):\n",
|
66 | 66 | " # Test tensor shape\n",
|
67 | 67 | " tensor = torch.tensor([[1, 2, 3], [4, 5, 6]])\n",
|
68 | 68 | " self.assertEqual(tensor.shape, (2, 3))\n",
|
69 |
| - " \n", |
| 69 | + "\n", |
70 | 70 | " def test_polynomial_fitting(self):\n",
|
71 | 71 | " dtype = torch.float\n",
|
72 | 72 | " device = torch.device(\"cpu\")\n",
|
|
107 | 107 | "\n",
|
108 | 108 | "\n",
|
109 | 109 | " print(f'Result: y = {a.item()} + {b.item()} x + {c.item()} x^2 + {d.item()} x^3')\n",
|
110 |
| - " \n", |
| 110 | + "\n", |
111 | 111 | " def test_image_transform(self):\n",
|
112 | 112 | " # Define a sample image\n",
|
113 | 113 | " sample_image = Image.new('RGB', (100, 100), color='red')\n",
|
|
153 | 153 | "\n",
|
154 | 154 | " # Assert that the writer has been successfully created and used\n",
|
155 | 155 | " self.assertTrue(isinstance(writer, SummaryWriter))\n",
|
156 |
| - " \n", |
| 156 | + "\n", |
157 | 157 | " def test_convert_to_onnx(self):\n",
|
158 | 158 | " # Load a pre-trained PyTorch model (for example, ResNet-18)\n",
|
159 | 159 | " model = models.resnet18(pretrained=True)\n",
|
|
169 | 169 | " # Check if the ONNX file exists\n",
|
170 | 170 | " self.assertTrue(os.path.exists(onnx_path), f\"ONNX file {onnx_path} not found\")\n",
|
171 | 171 | "\n",
|
| 172 | + "@unittest.skip(\"RHAIENG-509: TestSecurity tests all fail\")\n", |
172 | 173 | "class TestSecurity(unittest.TestCase):\n",
|
173 | 174 | " def test_jupyter_password_env(self):\n",
|
174 | 175 | " self.assertIn(\"JUPYTER_PASSWORD\", os.environ, \"Missing JUPYTER_PASSWORD env variable for login protection\")\n",
|
|
190 | 191 | " def test_host_not_public(self):\n",
|
191 | 192 | " host = os.environ.get(\"JUPYTER_HOST\", \"localhost\")\n",
|
192 | 193 | " self.assertIn(host, [\"localhost\", \"127.0.0.1\"], f\"Jupyter host is publicly exposed: {host}\")\n",
|
193 |
| - " \n", |
| 194 | + "\n", |
194 | 195 | "expected_versions = load_expected_versions()\n",
|
195 | 196 | "\n",
|
196 | 197 | "suite = unittest.TestLoader().loadTestsFromTestCase(TestPytorchNotebook)\n",
|
|
0 commit comments