Skip to content

Commit 8b7c53b

Browse files
committed
Changing implementation and adding test for custom screenshot hook
1 parent d9d1cef commit 8b7c53b

File tree

4 files changed

+15
-6
lines changed

4 files changed

+15
-6
lines changed

getgauge/python.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def after_step(obj):
4747

4848

4949
def screenshot(func):
50-
registry.add_screenshot_provider(func)
50+
registry.set_screenshot_provider(func)
5151
return func
5252

5353

getgauge/registry.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def _take_screenshot():
4444

4545
class Registry(object):
4646
def __init__(self):
47-
self.__screenshot_providers = [_take_screenshot, _take_screenshot]
47+
self.__screenshot_provider = _take_screenshot
4848
self.__steps_map = {}
4949
self.__before_step = []
5050
self.__after_step = []
@@ -80,7 +80,7 @@ def after_suite(self):
8080
return self.__after_suite
8181

8282
def screenshot_provider(self):
83-
return self.__screenshot_providers[0]
83+
return self.__screenshot_provider
8484

8585
def all_steps(self):
8686
return [value.step_text for value in self.__steps_map.values()]
@@ -109,8 +109,8 @@ def add_before_suite(self, func):
109109
def add_after_suite(self, func):
110110
self.__after_suite.append(func)
111111

112-
def add_screenshot_provider(self, func):
113-
self.__screenshot_providers[0] = func
112+
def set_screenshot_provider(self, func):
113+
self.__screenshot_provider = func
114114

115115
def add_step_definition(self, step_text, func, file_name, has_alias=False):
116116
if not isinstance(step_text, list):

tests/test_data/impl_stub.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from getgauge.python import before_step, step, after_step, before_scenario, after_scenario, before_spec, after_spec, \
2-
before_suite, after_suite
2+
before_suite, after_suite, screenshot
33

44

55
@step("Step 1")
@@ -80,3 +80,7 @@ def after_suite1():
8080
@after_suite
8181
def after_suite2():
8282
pass
83+
84+
@screenshot
85+
def take_screenshot():
86+
return ""
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,11 @@ def test_after_suite_decorator(self):
306306
expected = ['after_suite1', 'after_suite2']
307307
self.assertEqual(expected, [func.func_name for func in funcs])
308308

309+
def test_screenshot_decorator(self):
310+
func = registry.screenshot_provider()
311+
expected = 'take_screenshot'
312+
self.assertEqual(expected, func.func_name)
313+
309314

310315
if __name__ == '__main__':
311316
unittest.main()

0 commit comments

Comments
 (0)