How are you arranging for ansible to be in your PYTHONPATH?

-Toshio

On Nov 2, 2017 5:58 AM, "Jae Kim" <[email protected]> wrote:

> Hi
>
>
>
> When I run the following command
>
>
>
> pytest -r a -fulltrace --color yest my_new_test_module.py
>
>
>
> I get the following error message.
>
>
>
> ============================= test session starts
> ==============================
> platform linux -- Python 3.4.5, pytest-3.2.3, py-1.4.34, pluggy-0.4.0
> rootdir: /root/work/mymoduletests, inifile:
> collected 0 items / 1 errors
>
> =========================== short test summary info
> ============================
> ERROR my_new_test_module.py
> ==================================== ERRORS ==============================
> ======
> ____________________ ERROR collecting my_new_test_module.py
> ____________________
> [31mImportError while importing test module '/root/work/mymoduletests/my_n
> ew_test_module.py'.
> Hint: make sure your test modules/packages have valid Python names.
> Traceback:
> my_new_test_module.py:63: in <module>
>     from ansible.module_utils.basic import AnsibleModule
> E   ImportError: No module named 'ansible' [0m
> !!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection
> !!!!!!!!!!!!!!!!!!!!
> =========================== 1 error in 0.13 seconds
> ============================
>
>
>
>
>
> my_new_test_module.py is
>
>
>
> #!/usr/bin/python
>
> ANSIBLE_METADATA = {
>     'metadata_version': '1.1',
>     'status': ['preview'],
>     'supported_by': 'community'
> }
>
> DOCUMENTATION = '''
> ---
> module: my_sample_module
>
> short_description: This is my sample module
>
> version_added: "2.4"
>
> description:
>     - "This is my longer description explaining my sample module"
>
> options:
>     name:
>         description:
>             - This is the message to send to the sample module
>         required: true
>     new:
>         description:
>             - Control to demo if the result of this module is changed or
> not
>         required: false
>
> extends_documentation_fragment:
>     - azure
>
> author:
>     - Your Name (@yourhandle)
> '''
>
> EXAMPLES = '''
> # Pass in a message
> - name: Test with a message
>   my_new_test_module:
>     name: hello world
>
> # pass in a message and have changed true
> - name: Test with a message and changed output
>   my_new_test_module:
>     name: hello world
>     new: true
>
> # fail the module
> - name: Test failure of the module
>   my_new_test_module:
>     name: fail me
> '''
>
> RETURN = '''
> original_message:
>     description: The original name param that was passed in
>     type: str
> message:
>     description: The output message that the sample module generates
> '''
>
> from ansible.module_utils.basic import AnsibleModule
>
> def run_module():
>     # define the available arguments/parameters that a user can pass to
>     # the module
>     module_args = dict(
>         name=dict(type='str', required=True),
>         new=dict(type='bool', required=False, default=False)
>     )
>
>     # seed the result dict in the object
>     # we primarily care about changed and state
>     # change is if this module effectively modified the target
>     # state will include any data that you want your module to pass back
>     # for consumption, for example, in a subsequent task
>     result = dict(
>         changed=False,
>         original_message='',
>         message=''
>     )
>
>     # the AnsibleModule object will be our abstraction working with Ansible
>     # this includes instantiation, a couple of common attr would be the
>     # args/params passed to the execution, as well as if the module
>     # supports check mode
>     module = AnsibleModule(
>         argument_spec=module_args,
>         supports_check_mode=True
>     )
>
>     # if the user is working with this module in only check mode we do not
>     # want to make any changes to the environment, just return the current
>     # state with no modifications
>     if module.check_mode:
>         return result
>
>     # manipulate or modify the state as needed (this is going to be the
>     # part where your module will do what it needs to do)
>     result['original_message'] = module.params['name']
>     result['message'] = 'goodbye'
>
>     # use whatever logic you need to determine whether or not this module
>     # made any modifications to your target
>     if module.params['new']:
>         result['changed'] = True
>
>     # during the execution of the module, if there is an exception or a
>     # conditional state that effectively causes a failure, run
>     # AnsibleModule.fail_json() to pass in the message and the result
>     if module.params['name'] == 'fail me':
>         module.fail_json(msg='You requested this to fail', **result)
>
>     # in the event of a successful module execution, you will want to
>     # simple AnsibleModule.exit_json(), passing the key/value results
>     module.exit_json(**result)
>
> def main():
>     run_module()
>
> if __name__ == '__main__':
>     main()
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/ansible-project/449282ef-7e1b-4112-bf9f-7c50af1ea322%40googlegroups.
> com
> <https://groups.google.com/d/msgid/ansible-project/449282ef-7e1b-4112-bf9f-7c50af1ea322%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAPrnkaSZqfLW1Rmz5SuQM3Pcg8O5%3DYBO919BRELq43gsog4cCA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to