parent
							
								
									5424d3ed28
								
							
						
					
					
						commit
						2456c77e1e
					
				|  | @ -2,6 +2,7 @@ | ||||||
| **funcargs**: powerful and simple test setup | **funcargs**: powerful and simple test setup | ||||||
| ====================================================== | ====================================================== | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| In version 1.0 py.test introduces a new mechanism for setting up test | In version 1.0 py.test introduces a new mechanism for setting up test | ||||||
| state for use by Python test functions.  It is particularly useful  | state for use by Python test functions.  It is particularly useful  | ||||||
| for functional and integration testing but also for unit testing.   | for functional and integration testing but also for unit testing.   | ||||||
|  | @ -15,6 +16,9 @@ Using the funcargs mechanism will increase readability | ||||||
| and allow for easier refactoring of your application | and allow for easier refactoring of your application | ||||||
| and its test suites.  | and its test suites.  | ||||||
| 
 | 
 | ||||||
|  | .. contents:: Contents: | ||||||
|  |     :depth: 2 | ||||||
|  | 
 | ||||||
| The basic funcarg request/provide mechanism  | The basic funcarg request/provide mechanism  | ||||||
| ============================================= | ============================================= | ||||||
| 
 | 
 | ||||||
|  | @ -41,20 +45,20 @@ test module or on a local or global plugin. | ||||||
| The method is recognized by the ``pytest_funcarg__`` | The method is recognized by the ``pytest_funcarg__`` | ||||||
| prefix and is correlated to the argument | prefix and is correlated to the argument | ||||||
| name which follows this prefix.  The passed in | name which follows this prefix.  The passed in | ||||||
| "request" object allows to interact  | ``request`` object allows to interact  | ||||||
| with test configuration, test collection | with test configuration, test collection | ||||||
| and test running aspects.   | and test running aspects.   | ||||||
| 
 | 
 | ||||||
| .. _`request object`: | .. _`request object`: | ||||||
| 
 | 
 | ||||||
| request objects | funcarg request objects | ||||||
| ------------------------ | ------------------------ | ||||||
| 
 | 
 | ||||||
| Request objects give access to command line options,  | Request objects encapsulate a request for a function argument from a | ||||||
| the underlying python function and the test running  | specific test function.  Request objects provide access to command line | ||||||
| process.  Each funcarg provider method receives a ``request`` object | options, the underlying python function and allow interaction  | ||||||
| that allows interaction with the test method and test | with other providers and the test running process.   | ||||||
| running process.  Basic attributes of request objects: | Basic attributes of request objects: | ||||||
| 
 | 
 | ||||||
| ``request.argname``: name of the requested function argument  | ``request.argname``: name of the requested function argument  | ||||||
| 
 | 
 | ||||||
|  | @ -136,7 +140,7 @@ test function living in a test file ``test_sample.py``: | ||||||
|         assert answer == 42 |         assert answer == 42 | ||||||
| 
 | 
 | ||||||
| To run this test py.test looks up and calls a provider to obtain the | To run this test py.test looks up and calls a provider to obtain the | ||||||
| required "mysetup" function argument.  The test function simply | required ``mysetup`` function argument.  The test function simply | ||||||
| interacts with the provided application specific setup.  | interacts with the provided application specific setup.  | ||||||
| 
 | 
 | ||||||
| To provide the ``mysetup`` function argument we write down | To provide the ``mysetup`` function argument we write down | ||||||
|  | @ -305,7 +309,7 @@ by putting this in our test class: | ||||||
| 
 | 
 | ||||||
| According to the `lookup order`_ our class-specific provider will | According to the `lookup order`_ our class-specific provider will | ||||||
| be invoked first.  Here, we just ask our request object to  | be invoked first.  Here, we just ask our request object to  | ||||||
| call the next provider and decoare its result.  This simple | call the next provider and decorate its result.  This simple | ||||||
| mechanism allows us to stay ignorant of how/where the  | mechanism allows us to stay ignorant of how/where the  | ||||||
| function argument is provided.   | function argument is provided.   | ||||||
| 
 | 
 | ||||||
|  | @ -317,6 +321,8 @@ that provide uniform access to the local filesystem. | ||||||
| Questions and Answers | Questions and Answers | ||||||
| ================================== | ================================== | ||||||
| 
 | 
 | ||||||
|  | .. _`why pytest_pyfuncarg__ methods?`: | ||||||
|  | 
 | ||||||
| Why ``pytest_funcarg__*`` methods?  | Why ``pytest_funcarg__*`` methods?  | ||||||
| ------------------------------------ | ------------------------------------ | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue