aboutsummaryrefslogtreecommitdiffstats
path: root/test/mitmproxy/builtins/test_clientplayback.py
blob: 1570234021e8a8ec046eb9ebd784f35752f5b177 (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
import mock

from mitmproxy.builtins import clientplayback
from mitmproxy import options

from .. import tutils, mastertest


class TestClientPlayback:
    def test_playback(self):
        cp = clientplayback.ClientPlayback()
        cp.configure(options.Options(), [])
        assert cp.count() == 0
        f = tutils.tflow(resp=True)
        cp.load([f])
        assert cp.count() == 1
        RP = "mitmproxy.protocol.http_replay.RequestReplayThread"
        with mock.patch(RP) as rp:
            assert not cp.current
            with mastertest.mockctx():
                cp.tick()
            rp.assert_called()
            assert cp.current

        cp.keepserving = False
        cp.flows = None
        cp.current = None
        with mock.patch("mitmproxy.controller.Master.shutdown") as sd:
            with mastertest.mockctx():
                cp.tick()
            sd.assert_called()

    def test_configure(self):
        cp = clientplayback.ClientPlayback()
        cp.configure(
            options.Options(), []
        )