summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_datetime.py
Commit message (Collapse)AuthorAgeFilesLines
* convert usage of fail* to assert*Benjamin Peterson2009-06-301-179/+179
|
* Fix recently introduced test cases.Kristján Valur Jónsson2009-01-151-3/+12
| | | | | For datetime, gentoo didn't seem to mind the %e format for strftime. So, we just excercise those instead making sure that we don't crash. For test_os, two cases were incorrect.
* Add tests for invalid format specifiers in strftime, and for handling of ↵Kristján Valur Jónsson2009-01-121-0/+8
| | | | invalid file descriptors in the os module.
* Typo fixAndrew M. Kuchling2008-10-031-1/+1
|
* Issue 2235: Py3k warnings are now emitted for classes that will no longer ↵Nick Coghlan2008-08-111-0/+1
| | | | inherit a__hash__ implementation from a parent class in Python 3.x. The standard library and test suite have been updated to not emit these warnings.
* Fix issue 2782: be less strict about the format string type in strftime.Gregory P. Smith2008-06-021-0/+4
| | | | | Accept unicode and anything else ParseTuple "s#" can deal with. This matches the time.strftime behavior.
* add %f format to datetime - issue 1158Skip Montanaro2008-03-151-8/+9
|
* Patch #2167 from calvin: Remove unused importsChristian Heimes2008-02-231-1/+0
|
* Backport of PEP 3101, Advanced String Formatting, from py3k.Eric Smith2008-02-171-0/+76
| | | | | | | | | | | | | | | Highlights: - Adding PyObject_Format. - Adding string.Format class. - Adding __format__ for str, unicode, int, long, float, datetime. - Adding builtin format. - Adding ''.format and u''.format. - str/unicode fixups for formatters. The files in Objects/stringlib that implement PEP 3101 (stringdefs.h, unicodedefs.h, formatter.h, string_format.h) are identical in trunk and py3k. Any changes from here on should be made to trunk, and changes will propogate to py3k).
* Fix silly typo in test name.Guido van Rossum2007-08-241-1/+1
|
* Remove functionality from test_datetime.test_main() that does reference ↵Collin Winter2007-04-251-20/+1
| | | | count checking; 'regrtest.py -R' is the way to do this kind of testing.
* Standardize on test.test_support.run_unittest() (as opposed to a mix of ↵Collin Winter2007-04-251-26/+8
| | | | run_unittest() and run_suite()). Also, add functionality to run_unittest() that admits usage of unittest.TestLoader.loadTestsFromModule().
* Windows doesn't support negative timestamps. Skip the tests involving themGuido van Rossum2007-03-071-0/+7
| | | | if os.name == "nt".
* Patch #1646728: datetime.fromtimestamp fails with negativeGuido van Rossum2007-03-061-0/+9
| | | | | | fractional times. With unittest. Somebody please backport to 2.5.
* Bug #1653736: Complain about keyword arguments to time.isoformat.Martin v. Löwis2007-02-081-0/+5
| | | | Will backport to 2.5.
* Bug #1556784: allow format strings longer than 127 characters inGeorg Brandl2006-09-301-0/+1
| | | | datetime's strftime function.
* Bug #1478429: make datetime.datetime.fromtimestamp accept every float,Georg Brandl2006-04-281-0/+6
| | | | possibly "rounding up" to the next whole second.
* Fix problem spotted by Coverity that occurs if tzinfo.tzname().replace()Neal Norwitz2006-03-201-0/+11
| | | | | | returns a non-string when converting %Z. Will backport.
* similar to SF bug 847019: a quick check in the time() constructor, whichArmin Rigo2005-11-071-0/+7
| | | | | | accepts strings only for unpickling reasons. This check prevents the honest mistake of passing a string like '2:59.0' to time() and getting an insane object.
* Use descriptors.Guido van Rossum2005-01-161-1/+1
|
* Add strptime() constructor to datetime class. Thanks to Josh Spoerri forSkip Montanaro2005-01-131-0/+9
| | | | the changes.
* SF bug #1028306: date-datetime comparisonTim Peters2004-09-161-0/+43
| | | | Treat comparing a date to a datetime like a mixed-type comparison.
* Bug 975996: Add _PyTime_DoubleToTimet to C APITim Peters2004-06-201-0/+27
| | | | | | | | | | | New include file timefuncs.h exports private API function _PyTime_DoubleToTimet() from timemodule.c. timemodule should export some other functions too (look for painful bits in datetimemodule.c). Added insane-argument checking to datetime's assorted fromtimestamp() and utcfromtimestamp() methods. Added insane-argument tests of these to test_datetime, and insane-argument tests for ctime(), localtime() and gmtime() to test_time.
* SF 952807: Unpickling pickled instances of subclasses of datetime.date,Tim Peters2004-06-071-0/+34
| | | | | | | datetime.datetime and datetime.time could yield insane objects. Thanks to Jiwon Seo for the fix. Bugfix candidate. I'll backport it to 2.3.
* SF bug 847019 datetime.datetime initialization needs more strict checkingTim Peters2004-03-211-0/+20
| | | | | | | | | It's possible to create insane datetime objects by using the constructor "backdoor" inserted for fast unpickling. Doing extensive range checking would eliminate the backdoor's purpose (speed), but at least a little checking can stop honest mistakes. Bugfix candidate.
* SF bug #761337: datetime.strftime fails on trivial format stringRaymond Hettinger2003-06-271-0/+1
| | | | | | | | | | | | | | The interning of short strings violates the refcnt==1 assumption for _PyString_Resize(). A simple fix is to boost the initial value of "totalnew" by 1. Combined with an NULL argument to PyString_FromStringAndSize(), this assures that resulting format string is not interned. This will remain true even if the implementation of PyString_FromStringAndSize() changes because only the uninitialized strings that can be interned are those of zero length. Added a test case.
* datetime.timedelta is now subclassable in Python. The new test showsTim Peters2003-05-171-0/+31
| | | | | | | | one good use: a subclass adding a method to express the duration as a number of hours (or minutes, or whatever else you want to add). The native breakdown into days+seconds+us is often clumsy. Incidentally moved a large chunk of object-initialization code closer to the top of the file, to avoid worse forward-reference trickery.
* datetime.datetime and datetime.time can now be subclassed in Python. Brr.Tim Peters2003-05-171-31/+131
|
* test_subclass_date(): Beefed this up, to check that new instanceTim Peters2003-05-171-2/+28
| | | | | | | attributes and methods work, that new arguments can be passed to the constructor, and that inherited methods and attrs still work. Added XXX comments about what to do when datetime becomes usably subclassable too (it's not yet).
* The date class is now properly subclassable. (SF bug #720908)Guido van Rossum2003-04-141-0/+6
| | | | | (This is only the tip of the iceberg; the time and datetime classes need the same treatment.)
* Whitespace normalization.Tim Peters2003-02-191-11/+11
|
* The Python implementation of datetime was changed in ways that no longerTim Peters2003-02-081-31/+10
| | | | | | | tickle the 2.2.2 __cmp__ bug test_datetime used to tickle, so the workarounds for that bug no longer make sense in the test suite (which I'm still trying to keep as closely in synch as possible with Zope3's version).
* Comparison for timedelta, time, date and datetime objects: __eq__ andTim Peters2003-02-071-18/+68
| | | | | | | | | | | | | | | | | __ne__ no longer complain if they don't know how to compare to the other thing. If no meaningful way to compare is known, saying "not equal" is sensible. This allows things like if adatetime in some_sequence: and somedict[adatetime] = whatever to work as expected even if some_sequence contains non-datetime objects, or somedict non-datetime keys, because they only call __eq__. It still complains (raises TypeError) for mixed-type comparisons in contexts that require a total ordering, such as list.sort(), use as a key in a BTree-based data structure, and cmp().
* Merge the test part of the below checkin to the sandbox and Zope3, soGuido van Rossum2003-02-071-0/+8
| | | | | | | | | | | | the tests will remain in sync: """ Tres discovered a weird bug when a datetime is pickled, caused by the shadowing of __year, __month, __day and the use of proxies. Here's a quick fix and a quick unit test. I don't quite understand why this wasn't caught by the pickling unit tests. """
* SF bug 680864: test_datetime fails for non-unix epochTim Peters2003-02-061-12/+11
| | | | | | Apparently MAC OS 9 doesn't have POSIX-conforming timestamps. A test fails as a result, but at least for this specific test it's easy enough to get the POSIX epoch out of it.
* Build pickler_choices list in a lazier way.Tim Peters2003-02-051-16/+5
|
* cPickle now implements enough of protocol 2 to enable allGuido van Rossum2003-02-031-3/+3
| | | | cross-pickling tests.
* There's no good reason for datetime objects to expose __getstate__()Tim Peters2003-02-011-12/+0
| | | | | | anymore either, so don't. This also allows to get rid of obscure code making __getnewargs__ identical to __getstate__ (hmm ... hope there wasn't more to this than I realize!).
* Changed the tests to stop using __setstate__(). __setstate__() noTim Peters2003-01-311-65/+31
| | | | | | longer needs to be public, and shoudn't be public because all datetime objects are immutable. The Python implementation has changed accordingly, but still need to change the C implementation.
* Change the approach to pickling to use __reduce__ everywhere. MostGuido van Rossum2003-01-301-53/+49
| | | | | | | classes have a __reduce__ that returns (self.__class__, self.__getstate__()). tzinfo.__reduce__() is a bit smarter, calling __getinitargs__ and __getstate__ if they exist, and falling back to __dict__ if it exists and isn't empty.
* date and datetime comparison: when we don't know how toTim Peters2003-01-241-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | compare against "the other" argument, we raise TypeError, in order to prevent comparison from falling back to the default (and worse than useless, in this case) comparison by object address. That's fine so far as it goes, but leaves no way for another date/datetime object to make itself comparable to our objects. For example, it leaves Marc-Andre no way to teach mxDateTime dates how to compare against Python dates. Discussion on Python-Dev raised a number of impractical ideas, and the simple one implemented here: when we don't know how to compare against "the other" argument, we raise TypeError *unless* the other object has a timetuple attr. In that case, we return NotImplemented instead, and Python will give the other object a shot at handling the comparison then. Note that comparisons of time and timedelta objects still suffer the original problem, though.
* SF bug 660872: datetimetz constructors behave counterintuitively (2.3a1).Tim Peters2003-01-231-1/+15
| | | | | | This gives much the same treatment to datetime.fromtimestamp(stamp, tz) as the last batch of checkins gave to datetime.now(tz): do "the obvious" thing with the tz argument instead of a senseless thing.
* Reimplemented datetime.now() to be useful.Tim Peters2003-01-231-2/+20
|
* Bringing the code and test suite into line with doc and NEWS changesTim Peters2003-01-231-28/+90
| | | | | | | | | | | | | | | | | | | | checked in two days agao: Refactoring of, and new rules for, dt.astimezone(tz). dt must be aware now, and tz.utcoffset() and tz.dst() must not return None. The old dt.astimezone(None) no longer works to change an aware datetime into a naive datetime; use dt.replace(tzinfo=None) instead. The tzinfo base class now supplies a new fromutc(self, dt) method, and datetime.astimezone(tz) invokes tz.fromutc(). The default implementation of fromutc() reproduces the same results as the old astimezone() implementation, but tzinfo subclasses can override fromutc() if the default implementation isn't strong enough to get the correct results in all cases (for example, this may be necessary if a tzinfo subclass models a time zone whose "standard offset" (wrt UTC) changed in some year(s), or in some variations of double-daylight time -- the creativity of time zone politics can't be captured in a single default implementation).
* New rule for tzinfo subclasses handling both standard and daylight time:Tim Peters2003-01-201-20/+27
| | | | | | | | | | | | When daylight time ends, an hour repeats on the local clock (for example, in US Eastern, the clock jumps from 1:59 back to 1:00 again). Times in the repeated hour are ambiguous. A tzinfo subclass that wants to play with astimezone() needs to treat times in the repeated hour as being standard time. astimezone() previously required that such times be treated as daylight time. There seems no killer argument either way, but Guido wants the standard-time version, and it does seem easier the new way to code both American (local-time based) and European (UTC-based) switch rules, and the astimezone() implementation is simpler.
* Got rid of the internal datetimetz type.Tim Peters2003-01-111-1/+1
|
* Got rid of the timetz type entirely. This was a bit trickier than ITim Peters2003-01-101-1/+1
| | | | | | | hoped it would be, but not too bad. A test had to change: time.__setstate__() can no longer add a non-None tzinfo member to a time object that didn't already have one, since storage for a tzinfo member doesn't exist in that case.
* Utterly minimal changes to collapse datetimetz into datetime, and timetzTim Peters2003-01-081-68/+89
| | | | | | | | | into time. This is little more than *exporting* the datetimetz object under the name "datetime", and similarly for timetz. A good implementation of this change requires more work, but this is fully functional if you don't stare too hard at the internals (e.g., right now a type named "datetime" shows up as a base class of the type named "datetime"). The docs also need extensive revision, not part of this checkin.
* A new implementation of astimezone() that does what we agreed on in allTim Peters2003-01-041-16/+33
| | | | | | cases, plus even tougher tests of that. This implementation follows the correctness proof very closely, and should also be quicker (yes, I wrote the proof before the code, and the code proves the proof <wink>).
* The tzinfo methods utcoffset() and dst() must return a timedelta objectTim Peters2003-01-021-32/+40
| | | | | | (or None) now. In 2.3a1 they could also return an int or long, but that was an unhelpfully redundant leftover from an earlier version wherein they couldn't return a timedelta. TOOWTDI.