##### SUMMARY

When checking Ansible modules, the import sanity test should check modules twice, once with `__name__` set to `'__main__'` and once without, so that modules can be checked up to the point that `AnsibleModule` is instantiated.

This works correctly for Ansible 2.8 and earlier, but in Ansible 2.9 the checking with `__name__` set to  `'__main__'` no longer occurs.

##### ISSUE TYPE

Bug Report

##### COMPONENT NAME

ansible-test

##### ANSIBLE VERSION

2.9.0rc1

##### CONFIGURATION

N/A

##### OS / ENVIRONMENT

N/A

##### STEPS TO REPRODUCE

```
ansible-test coverage erase
ansible-test sanity --test import ping --docker -v --coverage --python 3.7
ansible-test coverage html
```

Look at the coverage results for the `ping` module and notice that under Ansible 2.8 and earlier the `__name__ == '__main__'` branch is covered, but under Ansible 2.9 it is not.

##### EXPECTED RESULTS

Ansible modules are checked with `__name__` set to `'__main__'` and not.

##### ACTUAL RESULTS

Ansible modules are checked only with `__name__` not set to `'__main__'`.

"""Import the given python module(s) and report error(s) encountered."""
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
def main():
    """
    Main program function used to isolate globals from imported code.
    Changes to globals in imported modules on Python 2.7 will overwrite our own globals.
    """
    import contextlib
    import os
    import re
    import sys
    import traceback