python project organisation using command line arguments

Viewed 20

folder:

./setup.py
./__init__.py
./application.py
./source/a_module_used.py
./source/__init__.py
./test/test_a_model_used.py
./test/__init__.py

application.py:

import sys
import subprocess

import a_module_used

def run():
    a_module_used.ModuleMethod()
    print("running instance")

if __name__ == "__name__":
    if "--test" in sys.argv:
        subprocess.call([sys.executable, "-m","unittest","discover"])
    else:
        run()

a_module_used.py:

class ModuleMethod():
    pass

test_a_module_used:

import unittest   

import a_module_used 

class Test_AModuleUsed(unittest.TestCase):
    def test_a_module_used_method(self):
        self.assertEqual(1,1)

I would simply like to call in the root directory this command:

./python -m application.py --test

or

./python -m application

But I am stuck in a loop of "no module named test_a_module_used.py" and "attempt relative import with no known parent package". I am sure it is something simple like 'put this import statement in the init file ...

0 Answers
Related