Esempio n. 1
0
    def test_munge_cmdstan_versions(self):
        with tempfile.TemporaryDirectory(prefix="cmdstan_tests",
                                         dir=_TMPDIR) as tmpdir:
            tdir = os.path.join(tmpdir, 'tmpdir_xxx')
            os.makedirs(tdir)
            os.makedirs(os.path.join(tdir, 'cmdstan-2.22.0-rc1'))
            os.makedirs(os.path.join(tdir, 'cmdstan-2.22.0-rc2'))
            self.assertEqual(get_latest_cmdstan(tdir), 'cmdstan-2.22.0-rc2')

            os.makedirs(os.path.join(tdir, 'cmdstan-2.22.0'))
            self.assertEqual(get_latest_cmdstan(tdir), 'cmdstan-2.22.0')
Esempio n. 2
0
 def test_default_path(self):
     cur_value = None
     if 'CMDSTAN' in os.environ:
         cur_value = os.environ['CMDSTAN']
     try:
         if 'CMDSTAN' in os.environ:
             self.assertEqual(cmdstan_path(), os.environ['CMDSTAN'])
             path = os.environ['CMDSTAN']
             del os.environ['CMDSTAN']
             self.assertFalse('CMDSTAN' in os.environ)
             set_cmdstan_path(path)
             self.assertEqual(cmdstan_path(), path)
             self.assertTrue('CMDSTAN' in os.environ)
         else:
             install_dir = os.path.expanduser(
                 os.path.join('~', '.cmdstanpy')
             )
             install_version = os.path.expanduser(
                 os.path.join(install_dir, get_latest_cmdstan(install_dir))
             )
             self.assertTrue(
                 os.path.samefile(cmdstan_path(), install_version)
             )
             self.assertTrue('CMDSTAN' in os.environ)
     finally:
         if cur_value is not None:
             os.environ['CMDSTAN'] = cur_value
         else:
             if 'CMDSTAN' in os.environ:
                 del os.environ['CMDSTAN']
Esempio n. 3
0
 def test_set_path(self):
     install_dir = os.path.expanduser(os.path.join('~', '.cmdstanpy'))
     install_version = os.path.expanduser(
         os.path.join(install_dir, get_latest_cmdstan(install_dir))
     )
     set_cmdstan_path(install_version)
     self.assertEqual(install_version, cmdstan_path())
Esempio n. 4
0
 def test_munge_cmdstan_versions(self):
     tdir = os.path.join(HERE, 'tmpdir_xxx')
     os.mkdir(tdir)
     os.mkdir(os.path.join(tdir, 'cmdstan-2.22-rc1'))
     os.mkdir(os.path.join(tdir, 'cmdstan-2.22-rc2'))
     os.mkdir(os.path.join(tdir, 'cmdstan-2.22.0'))
     self.assertEqual(get_latest_cmdstan(tdir), 'cmdstan-2.22.0')
     shutil.rmtree(tdir, ignore_errors=True)
Esempio n. 5
0
 def test_set_path(self):
     if 'CMDSTAN' in os.environ:
         self.assertEqual(cmdstan_path(), os.environ['CMDSTAN'])
     else:
         install_dir = os.path.expanduser(os.path.join('~', '.cmdstanpy'))
         install_version = os.path.expanduser(
             os.path.join(install_dir, get_latest_cmdstan(install_dir)))
         set_cmdstan_path(install_version)
         self.assertEqual(install_version, cmdstan_path())
         self.assertEqual(install_version, os.environ['CMDSTAN'])
Esempio n. 6
0
 def test_validate_path(self):
     install_dir = os.path.expanduser(os.path.join('~', '.cmdstanpy'))
     install_version = os.path.expanduser(
         os.path.join(install_dir, get_latest_cmdstan(install_dir)))
     set_cmdstan_path(install_version)
     validate_cmdstan_path(install_version)
     path_foo = os.path.abspath(os.path.join('releases', 'foo'))
     with self.assertRaisesRegex(ValueError, 'no such CmdStan directory'):
         validate_cmdstan_path(path_foo)
     path_test = os.path.abspath('test')
     with self.assertRaisesRegex(ValueError, 'no CmdStan binaries'):
         validate_cmdstan_path(path_test)
Esempio n. 7
0
 def test_set_path(self):
     if 'CMDSTAN' in os.environ:
         self.assertEqual(cmdstan_path(), os.environ['CMDSTAN'])
     else:
         cmdstan_dir = os.path.expanduser(os.path.join('~', _DOT_CMDSTAN))
         if not os.path.exists(cmdstan_dir):
             cmdstan_dir = os.path.expanduser(
                 os.path.join('~', _DOT_CMDSTANPY))
         install_version = os.path.join(cmdstan_dir,
                                        get_latest_cmdstan(cmdstan_dir))
         set_cmdstan_path(install_version)
         self.assertEqual(install_version, cmdstan_path())
         self.assertEqual(install_version, os.environ['CMDSTAN'])
Esempio n. 8
0
 def test_default_path(self):
     if 'CMDSTAN' in os.environ:
         self.assertPathsEqual(cmdstan_path(), os.environ['CMDSTAN'])
         path = os.environ['CMDSTAN']
         with self.modified_environ('CMDSTAN'):
             self.assertFalse('CMDSTAN' in os.environ)
             set_cmdstan_path(path)
             self.assertPathsEqual(cmdstan_path(), path)
             self.assertTrue('CMDSTAN' in os.environ)
     else:
         cmdstan_dir = os.path.expanduser(os.path.join('~', _DOT_CMDSTAN))
         install_version = os.path.join(cmdstan_dir,
                                        get_latest_cmdstan(cmdstan_dir))
         self.assertTrue(os.path.samefile(cmdstan_path(), install_version))
         self.assertTrue('CMDSTAN' in os.environ)
Esempio n. 9
0
 def test_validate_path(self):
     install_dir = os.path.expanduser(os.path.join('~', '.cmdstanpy'))
     install_version = os.path.expanduser(
         os.path.join(install_dir, get_latest_cmdstan(install_dir)))
     set_cmdstan_path(install_version)
     validate_cmdstan_path(install_version)
     path_foo = os.path.abspath(os.path.join('releases', 'foo'))
     with self.assertRaisesRegex(ValueError, 'no such CmdStan directory'):
         validate_cmdstan_path(path_foo)
     folder_name = ''.join(
         random.choice(string.ascii_letters) for _ in range(10))
     while os.path.exists(folder_name):
         folder_name = ''.join(
             random.choice(string.ascii_letters) for _ in range(10))
     os.makedirs(folder_name)
     path_test = os.path.abspath(folder_name)
     with self.assertRaisesRegex(ValueError, 'no CmdStan binaries'):
         validate_cmdstan_path(path_test)
     shutil.rmtree(folder_name)
Esempio n. 10
0
    def test_validate_path(self):
        if 'CMDSTAN' in os.environ:
            install_version = os.environ.get('CMDSTAN')
        else:
            cmdstan_dir = os.path.expanduser(os.path.join('~', _DOT_CMDSTAN))

            install_version = os.path.join(cmdstan_dir,
                                           get_latest_cmdstan(cmdstan_dir))

        set_cmdstan_path(install_version)
        validate_cmdstan_path(install_version)
        path_foo = os.path.abspath(os.path.join('releases', 'foo'))
        with self.assertRaisesRegex(ValueError, 'No CmdStan directory'):
            validate_cmdstan_path(path_foo)
        folder_name = ''.join(
            random.choice(string.ascii_letters) for _ in range(10))
        while os.path.exists(folder_name):
            folder_name = ''.join(
                random.choice(string.ascii_letters) for _ in range(10))
        os.makedirs(folder_name)
        path_test = os.path.abspath(folder_name)
        with self.assertRaisesRegex(ValueError, 'missing binaries'):
            validate_cmdstan_path(path_test)
        shutil.rmtree(folder_name)