summaryrefslogtreecommitdiffstats
path: root/testing/raptor/test/test_playback.py
blob: c01065ea8302d5459bf2ecea026bdba0421f2444 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import os
import time

import mozinfo
import mozunit
from mozlog.structuredlog import StructuredLogger, set_default_logger

# need this so raptor imports work both from /raptor and via mach
here = os.path.abspath(os.path.dirname(__file__))

set_default_logger(StructuredLogger("test_playback"))

from mozproxy import get_playback
from mozproxy.backends.mitm.desktop import MitmproxyDesktop

config = {}

run_local = True
if os.environ.get("TOOLTOOLCACHE") is None:
    run_local = False


def test_get_playback(get_binary):
    config["platform"] = mozinfo.os
    if "win" in config["platform"]:
        # this test is not yet supported on windows
        assert True
        return
    config["obj_path"] = os.path.dirname(get_binary("firefox"))
    config["playback_tool"] = "mitmproxy"
    config["playback_version"] = "7.0.4"
    config["playback_files"] = [
        os.path.join(
            os.path.dirname(os.path.abspath(os.path.dirname(__file__))),
            "raptor",
            "tooltool-manifests",
            "playback",
            "mitm7-linux-firefox-amazon.manifest",
        )
    ]
    config["binary"] = get_binary("firefox")
    config["run_local"] = run_local
    config["app"] = "firefox"
    config["host"] = "127.0.0.1"

    playback = get_playback(config)
    assert isinstance(playback, MitmproxyDesktop)
    playback.start()
    time.sleep(1)
    playback.stop()


def test_get_unsupported_playback():
    config["playback_tool"] = "unsupported"
    playback = get_playback(config)
    assert playback is None


def test_get_playback_missing_tool_name():
    playback = get_playback(config)
    assert playback is None


if __name__ == "__main__":
    mozunit.main()