![]() |
|
|
|||||||
![]() |
Python - Re: How best to test functions which use date.today |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
En Sat, 28 Feb 2009 15:35:47 -0200, Yuan HOng <>
escribió: > In my project I have several date related methods which I want tested for > correctness. The functions use date.today() in several places. Since this > could change every time I run the test, I hope to find someway to fake a > date.today. > > For illustration lets say I have a function: > > > from datetime import date > def today_is_2009(): > return date.today().year == 2009 > > To test this I would like to write test function like: > > def test_today_is_2009(): > set_today(date(2008, 12, 31)) > assert today_is_2009() == False > set_today(date(2009,1,1)) > assert today_is_2009() == True > Instead of trying to inject a fake date, you could rewrite the function to take a date argument: def today_is_2009(today=None): if today is None: today = date.today() return today.year == 2009 Then, tests should pass a known date. This approach has a drawback -- you don't test the case when no argument is given. Another way is to use a fake date class, or a fake datetime module. Google "python mock object" -- Gabriel Genellina Gabriel Genellina |
|
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Give you enough string functions in Java web reporting tool | freezea | Software | 0 | 10-08-2009 09:03 AM |
| Please explain this virtual functions matter (c++) | smokey1401 | General Help Related Topics | 0 | 07-11-2008 11:53 PM |
| c# dynamic functions threading | Ahmad | MCTS | 0 | 07-10-2008 02:12 PM |
| piece-wise functions in Tex/HTML | lou | General Help Related Topics | 0 | 10-07-2006 03:08 AM |
| programming xxd3033 pioneer remote for universal functions | jmaroon | DVD Video | 0 | 08-27-2006 03:32 PM |