From 42944268b9d52a73600a548a3fbf7c551a40afe4 Mon Sep 17 00:00:00 2001 From: Artem Malyshev Date: Sat, 2 Jan 2021 03:08:20 +0300 Subject: [PATCH] feat: implement callable return value #3 --- src/_primitives/callable.py | 8 +++++++- tests/test_callable.py | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/_primitives/callable.py b/src/_primitives/callable.py index 0c61a3d..1404510 100644 --- a/src/_primitives/callable.py +++ b/src/_primitives/callable.py @@ -1,6 +1,12 @@ class Callable: """An object appropriate to fake functions and methods.""" + def __init__(self, *args): + if args: + self.return_value = args[0] + else: + self.return_value = None + def __call__(self): """Return predefined value.""" - pass + return self.return_value diff --git a/tests/test_callable.py b/tests/test_callable.py index 8c1aa04..2de2f57 100644 --- a/tests/test_callable.py +++ b/tests/test_callable.py @@ -11,3 +11,9 @@ def test_empty_callable_object(): """ func = Callable() assert func() is None + + +def test_callable_object_return_value(): + """`Callable` object should return value passed to it constructor.""" + func = Callable("Hello, John") + assert func() == "Hello, John"