## @package onnx # Module caffe2.python.onnx.tests.test_utils from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals import os import unittest import numpy as np from caffe2.python.models.download import downloadFromURLToFile, getURLFromName, deleteDirectory class TestCase(unittest.TestCase): def setUp(self): np.random.seed(seed=0) def assertSameOutputs(self, outputs1, outputs2, decimal=7): self.assertEqual(len(outputs1), len(outputs2)) for o1, o2 in zip(outputs1, outputs2): self.assertEqual(o1.dtype, o2.dtype) np.testing.assert_almost_equal(o1, o2, decimal=decimal) def add_test_case(self, name, test_func): if not name.startswith('test_'): raise ValueError('Test name must start with test_: {}'.format(name)) if hasattr(self, name): raise ValueError('Duplicated test name: {}'.format(name)) setattr(self, name, test_func) class DownloadingTestCase(TestCase): def _download(self, model): model_dir = self._model_dir(model) assert not os.path.exists(model_dir) os.makedirs(model_dir) for f in ['predict_net.pb', 'init_net.pb', 'value_info.json']: url = getURLFromName(model, f) dest = os.path.join(model_dir, f) try: try: downloadFromURLToFile(url, dest, show_progress=False) except TypeError: # show_progress not supported prior to # Caffe2 78c014e752a374d905ecfb465d44fa16e02a28f1 # (Sep 17, 2017) downloadFromURLToFile(url, dest) except Exception as e: print("Abort: {reason}".format(reason=e)) print("Cleaning up...") deleteDirectory(model_dir) raise AssertionError("Test model downloading failed")