Tests for regular datetime fields
(self)
| 88 | assert log.date == d2.date() |
| 89 | |
| 90 | def test_regular_usage(self): |
| 91 | """Tests for regular datetime fields""" |
| 92 | |
| 93 | class LogEntry(Document): |
| 94 | date = DateField() |
| 95 | |
| 96 | LogEntry.drop_collection() |
| 97 | |
| 98 | d1 = datetime.datetime(1970, 1, 1, 0, 0, 1) |
| 99 | log = LogEntry() |
| 100 | log.date = d1 |
| 101 | log.validate() |
| 102 | log.save() |
| 103 | |
| 104 | for query in (d1, d1.isoformat(" ")): |
| 105 | log1 = LogEntry.objects.get(date=query) |
| 106 | assert log == log1 |
| 107 | |
| 108 | if dateutil: |
| 109 | log1 = LogEntry.objects.get(date=d1.isoformat("T")) |
| 110 | assert log == log1 |
| 111 | |
| 112 | # create additional 19 log entries for a total of 20 |
| 113 | for i in range(1971, 1990): |
| 114 | d = datetime.datetime(i, 1, 1, 0, 0, 1) |
| 115 | LogEntry(date=d).save() |
| 116 | |
| 117 | assert LogEntry.objects.count() == 20 |
| 118 | |
| 119 | # Test ordering |
| 120 | logs = LogEntry.objects.order_by("date") |
| 121 | i = 0 |
| 122 | while i < 19: |
| 123 | assert logs[i].date <= logs[i + 1].date |
| 124 | i += 1 |
| 125 | |
| 126 | logs = LogEntry.objects.order_by("-date") |
| 127 | i = 0 |
| 128 | while i < 19: |
| 129 | assert logs[i].date >= logs[i + 1].date |
| 130 | i += 1 |
| 131 | |
| 132 | # Test searching |
| 133 | logs = LogEntry.objects.filter(date__gte=datetime.datetime(1980, 1, 1)) |
| 134 | assert logs.count() == 10 |
| 135 | |
| 136 | def test_validation(self): |
| 137 | """Ensure that invalid values cannot be assigned to datetime |