PyTest fixtures using addfinalizer() become convenient when you want to
make them work in RobotFramework as well.
def fixture_being_used_in_robotframework():
closure = "details of how to cleanup the fixture"
def clean_up():
print(closure)
return clean_up
@pytest.fixture()
def reuse_robotframework_fixture(request):
request.addfinalizer(fixture_being_used_in_robotframework())
Cheers,
Ernesto
>
> Message: 3
> Date: Mon, 4 Dec 2017 11:49:24 +0000
> From: Dr Keith M Franklin <[email protected]>
> To: [email protected]
> Subject: [pytest-dev] Question about fixtures and the use of
> finalizers vs yield
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=utf-8
>
>
> Good morning/afternoon,
>
> I hope this is the right place to post this. I?ve been using PyTest for a
> while but recently come across someone else?s fixture which made me wonder
> if I?m doing this right. Basically I?ve been creating a fixture like and
> adding a finalizer like so:
>
> @pytest.fixture(scope=?function?)
> def my_fixture(request):
> # Code that does something e.g. creates a database record
> rec = DBObject()
>
> def clean_up():
> # Code required to clean up the fixture code and return the state
> back to the
> ...
> request.addfinalizer(clean_up)
> return rec
>
>
> However, I?ve seen fixtures written using yield instead e.g.
>
>
> @pytest.fixture(scope=?function?)
> def my_fixture(request):
> # Code that does something e.g. creates a database record
> rec = DBObject()
> yield rec
>
> # Code required to clean up the fixture code and return the state back
> to the
> ...
>
> Can I ask, is there any real difference between the two approaches? Is
> there a preferred method and if so why?
>
> Thanks in advance for any help.
>
> Keith
>
> ------------------------------
>
> Message: 4
> Date: Mon, 04 Dec 2017 12:14:42 +0000
> From: Bruno Oliveira <[email protected]>
> To: Dr Keith M Franklin <[email protected]>
> Cc: [email protected]
> Subject: Re: [pytest-dev] Question about fixtures and the use of
> finalizers vs yield
> Message-ID:
> <CA+RQFff9Cx-P_Vs4jcU=cCQHy=mwuuRauU0vQEv7wdF=cZKv+A@mail.
> gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hi Keith,
>
> Both approaches are valid and identical; I personally prefer using yield
> because to me it feels more natural.
>
> Cheers,
>
>
_______________________________________________
pytest-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pytest-dev