Esempio n. 1
0
def test_setting_options_by_config(run_tests):
    with Patcher() as patcher:
        patcher.fs.add_real_file(DEFAULT_SCHEMA_PATH)
        patcher.fs.add_real_file(DEFAULT_CONFIG_PATH)
        patcher.fs.create_file(
            "config.json",
            contents="""
                {"delta_iterations": 5,
                 "processes": 2,
                 "outputs": ["xml", "remote"],
                 "filter": "MockCase",
                 "run_name": "some name",
                 "resources": "query"}
            """)

        sys.argv = ["rotest", "--config", "config.json"]
        main()

    config = AttrDict(delta_iterations=5, processes=2,
                      paths=(".",), config_path="config.json",
                      outputs=["xml", "remote"], filter="MockCase",
                      run_name="some name", resources="query", debug=False,
                      fail_fast=False, list=False, save_state=False,
                      skip_init=False)

    run_tests.assert_called_once_with(config=config, test=mock.ANY)
Esempio n. 2
0
def test_setting_options_by_cli(run_tests):
    with Patcher() as patcher:
        patcher.fs.add_real_file(DEFAULT_SCHEMA_PATH)
        patcher.fs.add_real_file(DEFAULT_CONFIG_PATH)
        patcher.fs.create_file(
            "config.json",
            contents="""
                {"delta_iterations": 5,
                 "processes": 2,
                 "outputs": ["xml", "remote"],
                 "filter": "some filter",
                 "run_name": "some name",
                 "resources": "query"}
            """)

        sys.argv = ["rotest", "-c", "config.json",
                    "-d", "4", "-p", "1", "-o", "pretty,full",
                    "-f", "MockCase", "-n", "other name",
                    "-r", "other query", "-D", "-F", "-l", "-s", "-S"]
        main()

    config = AttrDict(delta_iterations=4, processes=1,
                      paths=(".",), config_path="config.json",
                      outputs=["pretty", "full"], filter="MockCase",
                      run_name="other name", resources="other query",
                      debug=True, fail_fast=True, list=True, save_state=True,
                      skip_init=True)

    run_tests.assert_called_once_with(config=config, test=mock.ANY)
Esempio n. 3
0
def test_discarding_nothing_no_filter(capsys):
    class Case1(TestCase):
        def test_something(self):
            pass

    class Case2(TestCase):
        def test_something(self):
            pass

    class MockSuite(TestSuite):
        components = [Case1, Case2]

    with Patcher() as patcher:
        patcher.fs.add_real_file(DEFAULT_CONFIG_PATH)
        patcher.fs.add_real_file(DEFAULT_SCHEMA_PATH)
        patcher.fs.create_file("some_test.py")

        with mock.patch("rotest.cli.client.discover_tests_under_paths",
                        return_value={MockSuite}):
            sys.argv = ["rotest", "some_test.py", "--list"]

            main()
            out, _ = capsys.readouterr()
            assert "Case1.test_something" in out
            assert "Case2.test_something" in out
Esempio n. 4
0
def test_discarding_some_tests_by_tag(capsys):
    class Case1(TestCase):
        TAGS = ["HELLO"]

        def test_something(self):
            pass

    class Case2(TestCase):
        TAGS = ["WORLD"]

        def test_something(self):
            pass

    with Patcher() as patcher:
        patcher.fs.add_real_file(DEFAULT_CONFIG_PATH)
        patcher.fs.add_real_file(DEFAULT_SCHEMA_PATH)
        patcher.fs.create_file("some_test.py")

        with mock.patch("rotest.cli.client.discover_tests_under_paths",
                        return_value={Case1, Case2}):
            sys.argv = ["rotest", "some_test.py",
                        "--filter", "WORLD",
                        "--list"]

            main()
            out, _ = capsys.readouterr()
            assert "Case1.test_something" not in out
            assert "Case2.test_something" in out
Esempio n. 5
0
def test_using_default_port(resource_manager, capsys):
    sys.argv = ["rotest", "server"]
    main()

    resource_manager.assert_called_once_with(port=7777)
    out, _ = capsys.readouterr()
    assert "Running in attached mode" in out
Esempio n. 6
0
def test_ordering_tests(capsys):
    class Case1(TestCase):
        TAGS = ["2", "3"]

        def test_something(self):
            pass

    class Case2(TestCase):
        TAGS = ["1"]

        def test_something(self):
            pass

    class Case3(TestCase):
        TAGS = ["1", "2"]

        def test_something(self):
            pass

    with Patcher() as patcher:
        patcher.fs.add_real_file(DEFAULT_CONFIG_PATH)
        patcher.fs.add_real_file(DEFAULT_SCHEMA_PATH)
        patcher.fs.create_file("some_test.py")

        with mock.patch("rotest.cli.client.discover_tests_under_paths",
                        return_value=[Case1, Case2, Case3]):
            sys.argv = ["rotest", "some_test.py", "--order", "1,2", "--list"]

            main()
            out, _ = capsys.readouterr()
            assert out.find("Case3") < out.find("Case2") < out.find("Case1")
Esempio n. 7
0
def test_raising_on_windows_when_user_tries_daemon_mode(resource_manager):
    sys.argv = ["rotest", "server", "--daemon"]
    with pytest.raises(RuntimeError,
                       match="Cannot run as daemon on Windows"):
        main()

    resource_manager.assert_not_called()
Esempio n. 8
0
def test_not_running_django_server(popen, capsys):
    sys.argv = ["rotest", "server", "--no-django"]
    main()

    popen.assert_not_called()

    out, _ = capsys.readouterr()
    assert "Running the Django server as well" not in out
Esempio n. 9
0
def test_using_daemon_mode(resource_manager, daemon_context, capsys):
    sys.argv = ["rotest", "server", "--daemon"]
    main()

    resource_manager.assert_called_once_with(port=7777)
    daemon_context.assert_called_once()

    out, _ = capsys.readouterr()
    assert "Running in detached mode (as daemon)" in out
Esempio n. 10
0
def test_running_django_server(popen, capsys):
    sys.argv = ["rotest", "server"]
    main()

    popen.assert_called_once_with(["django-admin",
                                   "runserver",
                                   "0.0.0.0:8000"])

    out, _ = capsys.readouterr()
    assert "Running the Django server as well" in out
Esempio n. 11
0
def test_finding_no_test(capsys):
    with Patcher() as patcher:
        patcher.fs.add_real_file(DEFAULT_CONFIG_PATH)
        patcher.fs.add_real_file(DEFAULT_SCHEMA_PATH)
        patcher.fs.create_file("some_test.py")

        sys.argv = ["rotest", "some_test.py"]
        with pytest.raises(SystemExit):
            main()

        out, _ = capsys.readouterr()
        assert "No test was found" in out
Esempio n. 12
0
def test_listing_tests(capsys):
    class Case(TestCase):
        def test_something(self):
            pass

    with Patcher() as patcher:
        patcher.fs.add_real_file(DEFAULT_CONFIG_PATH)
        patcher.fs.add_real_file(DEFAULT_SCHEMA_PATH)
        patcher.fs.create_file("some_test.py")

        with mock.patch("rotest.cli.client.discover_tests_under_paths",
                        return_value={Case}):
            sys.argv = ["rotest", "some_test.py", "--list"]

            main()
            out, _ = capsys.readouterr()
            assert "Case.test_something" in out
Esempio n. 13
0
def test_finding_tests_in_current_directory(discover, run_tests):
    sys.argv = ["rotest"]
    main()

    discover.assert_called_once_with((".", ))
    run_tests.assert_called_once_with(test=mock.ANY,
                                      config_path=DEFAULT_CONFIG_PATH,
                                      debug=False,
                                      delta_iterations=0,
                                      fail_fast=False,
                                      filter=None,
                                      list=False,
                                      outputs={"excel", "pretty"},
                                      processes=None,
                                      resources=None,
                                      run_name=None,
                                      save_state=False,
                                      skip_init=False)
Esempio n. 14
0
def test_finding_tests_in_current_module(discover, run_tests):
    sys.argv = ["python", "script.py"]
    main()

    discover.assert_called_once_with(("script.py",))
    run_tests.assert_called()
Esempio n. 15
0
def test_giving_invalid_paths():
    sys.argv = ["rotest", "some_test.py"]
    with pytest.raises(OSError):
        main()
Esempio n. 16
0
def test_finding_tests_in_current_directory(discover, run_tests):
    sys.argv = ["rotest"]
    main()

    discover.assert_called_once_with((".",))
    run_tests.assert_called()