Esempio n. 1
0
 def test_returning_default(self):
     for dval in [[], ['a', 'b'], {}, {'a': 'b'}]:
         ass_fn = self.assertListEqual if isinstance(
             dval, list) else self.assertDictEqual
         with self.assertRaises(
                 AssertionError):  # unsupported file extension
             from_file(randstr(10))
         fname = randstr(8) + '.yaml'
         ass_fn(from_file(fname, dval), dval)  # non existing
         os.system(f"echo '' > {fname}")
         ass_fn(from_file(fname, dval), dval)
         os.system(f"echo 'abcd' > {fname}")
         ass_fn(from_file(fname, dval), dval)
Esempio n. 2
0
File: job.py Progetto: whitespur/pai
 def load(self, fname: str = None, job_name: str = None):
     if not fname:
         fname = Job.job_cache_file(job_name)
     if os.path.isfile(fname):
         self.protocol = from_file(fname, default="==FATAL==")
     self.protocol.setdefault(
         'protocolVersion',
         '1')  # v1 protocol (json) has no protocolVersion
     return self
Esempio n. 3
0
 def test_update_defaults(self):
     # ! not test global defaults updating, test it in integration tests
     test_key, test_value = self.get_random_var_name(), randstr(10)
     # add a default key
     update_default(test_key, test_value, is_global=False, to_delete=False)
     self.assertEqual(
         get_defaults()[test_key],
         test_value,
         msg=f"failed to check {test_key} in {LayeredSettings.as_dict()}")
     # should appear in local
     self.assertEqual(
         from_file(self.local_default_file)[test_key], test_value)
     # delete
     update_default(test_key, test_value, is_global=False, to_delete=True)
     with self.assertRaises(KeyError):
         os.system(f"cat {self.local_default_file}")
         from_file(self.local_default_file, {})[test_key]
     # add not allowed
     test_key = randstr(10)
     update_default(test_key, test_value, is_global=False, to_delete=False)
     with self.assertRaises(KeyError):
         from_file(self.local_default_file, {})[test_key]
Esempio n. 4
0
 def test_reading_failures(self):
     with self.assertRaises(Exception):  # non existing file
         from_file(randstr(8) + '.yaml')
     with self.assertRaises(AssertionError):  # unsupported file extension
         from_file(randstr(10))
     with self.assertRaises(Exception):
         fname = randstr(10) + '.json'
         os.system(f"touch {fname}")
         from_file(fname)
Esempio n. 5
0
 def __init__(self,
              name: str,
              include: list = None,
              exclude: list = None,
              file: str = None,
              values: dict = None,
              allow_unknown: bool = True):
     self.name = name
     self.file = file
     self.values = from_file(file, {}, silent=True) if file else na(
         values, {})
     self.definitions = OrganizedList(__flags__.default_var_definitions(),
                                      _key="name").filter(
                                          None, include,
                                          exclude)  # type: OrganizedList
Esempio n. 6
0
 def load(self,
          fname: str = None,
          job_name: str = None,
          cluster_alias: str = None):
     if cluster_alias:  # load job config from cluster by REST api
         job_name = na(job_name, self.name)
         self.protocol = get_cluster(cluster_alias).rest_api_job_info(
             job_name, 'config')
     else:  # load from local file
         if not fname:
             fname = Job(job_name).protocol_file
         if os.path.isfile(fname):
             self.protocol = from_file(fname, default="==FATAL==")
     self.protocol.setdefault(
         'protocolVersion',
         '1')  # v1 protocol (json) has no protocolVersion
     return self
Esempio n. 7
0
 def load(self, fname: str = __cluster_config_file__):
     self.clusters = from_file(fname, default=[])
     ClusterList.validate(self.clusters)
     return self
Esempio n. 8
0
 def load(self, fname: str=__cluster_config_file__):
     self.clusters = from_file(fname, default=[])
     assert isinstance(self.clusters, list), "contents in %s should be a list" % __cluster_config_file__
     return self
Esempio n. 9
0
 def load(self, fname: str = __cluster_config_file__):
     self.clusters = from_file(fname, default=[])
     return self
Esempio n. 10
0
 def load(self, fname: str = None):
     fname = na(fname, self.default_config_file)
     self.clusters = OrganizedList(from_file(fname, default=[]),
                                   _key="cluster_alias")
     return self