def test_string_to_bool_from_bool(self):
        examples = (
            (True, True),
            (False, False),
        )

        for example, valid_answer in examples:
            self.assertEqual(utils.string_to_bool(example), valid_answer)
    def test_string_to_bool(self):
        examples = (
            ('true', True),
            ('yes', True),
            ('1', True),
            ('t', True),
            ('y', True),
            ('false', False),
            ('no!', False),
            ('not', False),
            ('not a command', False),
        )

        for example, valid_answer in examples:
            self.assertEqual(utils.string_to_bool(example), valid_answer)
Exemple #3
0
def deduce_model_file_name(version=None):
    """
    Get model file name

    :param version: version of model
    :type version: str or None
    :return: str -- auto deduced file name
    """
    if not version:
        version = '0.0'

    model_id = get_model_id()
    if not model_id or is_model_id_auto_deduced():
        raise Exception(
            'Cannot get model_id. Please set using legion.init_model(<name>)')

    date_string = datetime.datetime.now().strftime('%y%m%d%H%M%S')

    valid_user_names = [
        os.getenv(env) for env in legion.config.MODEL_NAMING_UID_ENV
        if os.getenv(env)
    ]
    user_id = valid_user_names[0] if valid_user_names else getpass.getuser()

    commit_id = get_git_revision(os.getcwd())
    if not commit_id:
        commit_id = '0000'

    file_name = '%s-%s+%s.%s.%s.model' % (model_id, str(version), date_string,
                                          user_id, commit_id)

    if string_to_bool(
            os.getenv(*legion.config.EXTERNAL_RESOURCE_USE_BY_DEFAULT)):
        return '///%s' % file_name

    default_prefix = os.getenv(*legion.config.LOCAL_DEFAULT_RESOURCE_PREFIX)
    if default_prefix:
        return os.path.join(default_prefix, file_name)

    return file_name