Skip to content

Python 3 support (init throws NameError: basestring is not defined) #763

@jitakirin

Description

@jitakirin

Feature request

Please add Python 3 support.

Molecule and Ansible details

> ansible --version
ansible 2.2.1.0
> molecule --version
molecule, version 1.20.3
  • Molecule installation method: pip
  • Ansible installation method: pip

Desired Behaviour

Should work when executed using Python 3, which is the default Python version in some distributions nowadays.

Actual Behaviour

> virtualenv --python=/usr/bin/python3 t-molecule
...
> ./t-molecule/bin/pip install molecule
...
> ./t-molecule/bin/molecule --debug init --driver=docker
Traceback (most recent call last):
  File "./t-molecule/bin/molecule", line 11, in <module>
    sys.exit(main())
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/molecule/cli.py", line 41, in main
    cli(obj={})
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/molecule/command/init.py", line 139, in init
    i = Init(ctx.obj.get('args'), command_args)
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/molecule/command/base.py", line 53, in __init__
    self._config = self._get_config()
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/molecule/command/base.py", line 90, in _get_config
    return config.ConfigV1()
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/molecule/config.py", line 67, in __init__
    super(ConfigV1, self).__init__(configs)
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/molecule/config.py", line 47, in __init__
    self.config = self._get_config(configs)
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/molecule/config.py", line 92, in _get_config
    return self._combine(configs)
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/molecule/config.py", line 113, in _combine
    return self._expand_env_vars(m9dicts.convert_to(conf))
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/molecule/config.py", line 155, in _expand_env_vars
    __recursive_string_replace(config)
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/molecule/config.py", line 136, in __recursive_string_replace
    new_name = __replace_matches(i)
  File "/home/jitakirin/wrk/gitlab.com/jitakirin/ansible-pkgreqs-devops/t-molecule/lib/python3.6/site-packages/molecule/config.py", line 128, in __replace_matches
    if not isinstance(line, basestring):
NameError: name 'basestring' is not defined

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions