• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mindflayer / python-mocket / 3610521234

pending completion
3610521234

push

github-actions

Andreas Motl
CI: Improve efficiency on GHA

741 of 748 relevant lines covered (99.06%)

6.93 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/mocket/plugins/pook_mock_engine.py
1
from pook.engine import MockEngine
7✔
2
from pook.interceptors.base import BaseInterceptor
7✔
3

4
from mocket.mocket import Mocket
7✔
5
from mocket.mockhttp import Entry, Response
7✔
6

7

8
class MocketPookEntry(Entry):
7✔
9
    pook_request = None
7✔
10
    pook_engine = None
7✔
11

12
    def can_handle(self, data):
7✔
13
        can_handle = super(MocketPookEntry, self).can_handle(data)
7✔
14

15
        if can_handle:
7✔
16
            self.pook_engine.match(self.pook_request)
7✔
17
        return can_handle
7✔
18

19
    @classmethod
7✔
20
    def single_register(cls, method, uri, body='', status=200, headers=None, match_querystring=True):
7✔
21
        entry = cls(
7✔
22
            uri, method, Response(
23
                body=body, status=status, headers=headers
24
            ), match_querystring=match_querystring
25
        )
26
        Mocket.register(entry)
7✔
27
        return entry
7✔
28

29

30
class MocketInterceptor(BaseInterceptor):
7✔
31
    @staticmethod
7✔
32
    def activate():
4✔
33
        Mocket.disable()
7✔
34
        Mocket.enable()
7✔
35

36
    @staticmethod
7✔
37
    def disable():
4✔
38
        Mocket.disable()
7✔
39

40

41
class MocketEngine(MockEngine):
7✔
42

43
    def __init__(self, engine):
7✔
44
        def mocket_mock_fun(*args, **kwargs):
7✔
45
            mock = self.pook_mock_fun(*args, **kwargs)
7✔
46

47
            request = mock._request
7✔
48
            method = request.method
7✔
49
            url = request.rawurl
7✔
50

51
            response = mock._response
7✔
52
            body = response._body
7✔
53
            status = response._status
7✔
54
            headers = response._headers
7✔
55

56
            entry = MocketPookEntry.single_register(method, url, body, status, headers)
7✔
57
            entry.pook_engine = self.engine
7✔
58
            entry.pook_request = request
7✔
59

60
            return mock
7✔
61

62
        # Store plugins engine
63
        self.engine = engine
7✔
64
        # Store HTTP client interceptors
65
        self.interceptors = []
7✔
66
        # Self-register MocketInterceptor
67
        self.add_interceptor(MocketInterceptor)
7✔
68

69
        # mocking pook.mock()
70
        self.pook_mock_fun = self.engine.mock
7✔
71
        self.engine.mock = mocket_mock_fun
7✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc