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

zopefoundation / grokcore.layout / 16098815659

18 Jun 2025 06:34AM UTC coverage: 96.033%. Remained the same
16098815659

push

github

icemac
Back to development: 5.1

22 of 26 branches covered (84.62%)

Branch coverage included in aggregate %.

438 of 453 relevant lines covered (96.69%)

0.97 hits per line

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

94.87
/src/grokcore/layout/tests/layout/layoutlayers.py
1
"""
2
  >>> a = A()
3
  >>> b = B()
4

5
  >>> from zope.publisher.browser import TestRequest
6
  >>> from zope.interface import directlyProvides
7
  >>> from zope.component import getMultiAdapter
8

9
  >>> request = TestRequest()
10

11
  >>> directlyProvides(request, IDefaultLayer)
12
  >>> view = getMultiAdapter((a, request), name="myview")
13
  >>> print(view())
14
  A Layout
15

16
  >>> directlyProvides(request, IAnotherLayer)
17
  >>> view = getMultiAdapter((a, request), name="myview")
18
  >>> print(view())
19
  A2 Layout
20

21
  >>> view = getMultiAdapter((b, request), name="myview")
22
  >>> print(view())
23
  B Layout
24
"""
25

26
import grokcore.view as grok
1✔
27
from zope.interface import Interface
1✔
28

29
from grokcore.layout import Layout
1✔
30
from grokcore.layout import Page
1✔
31

32

33
class IDefaultLayer(grok.IDefaultBrowserLayer):
1✔
34
    pass
1✔
35

36

37
class IAnotherLayer(grok.IDefaultBrowserLayer):
1✔
38
    pass
1✔
39

40

41
class A(grok.Context):
1✔
42
    pass
1✔
43

44

45
class B(grok.Context):
1✔
46
    pass
1✔
47

48

49
class ALayout(Layout):
1✔
50
    grok.context(A)
1✔
51
    grok.layer(IDefaultLayer)
1✔
52

53
    def render(self):
1✔
54
        return "A Layout"
1✔
55

56

57
class A2Layout(Layout):
1✔
58
    grok.context(A)
1✔
59
    grok.layer(IAnotherLayer)
1✔
60

61
    def render(self):
1✔
62
        return "A2 Layout"
1✔
63

64

65
class BLayout(Layout):
1✔
66
    grok.context(B)
1✔
67
    grok.layer(IAnotherLayer)
1✔
68

69
    def render(self):
1✔
70
        return "B Layout"
1✔
71

72

73
class MyViewA(Page):
1✔
74
    grok.context(Interface)
1✔
75
    grok.name('myview')
1✔
76
    grok.layer(IDefaultLayer)
1✔
77

78
    def render(self):
1✔
79
        return "MYVIEW"
×
80

81

82
class MyViewB(Page):
1✔
83
    grok.context(Interface)
1✔
84
    grok.name('myview')
1✔
85
    grok.layer(IAnotherLayer)
1✔
86

87
    def render(self):
1✔
88
        return "MYVIEW"
×
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