Page Menu
Home
Search
Configure Global Search
Log In
Files
F13101478
test_utils.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
4 KB
Subscribers
None
test_utils.py
View Options
# -*- encoding: utf-8 -*-
import
unittest
import
datetime
from
bson
import
tz_util
from
pillar.web
import
utils
class
IsValidIdTest
(
unittest
.
TestCase
):
def
test_valid
(
self
):
# 24-byte hex strings
self
.
assertTrue
(
utils
.
is_valid_id
(
24
*
'a'
))
self
.
assertTrue
(
utils
.
is_valid_id
(
24
*
'a'
))
self
.
assertTrue
(
utils
.
is_valid_id
(
'deadbeefbeefcacedeadcace'
))
self
.
assertTrue
(
utils
.
is_valid_id
(
'deadbeefbeefcacedeadcace'
))
# 12-byte arbitrary ASCII bytes
self
.
assertTrue
(
utils
.
is_valid_id
(
b
'DeadBeefCake'
))
self
.
assertTrue
(
utils
.
is_valid_id
(
b
'DeadBeefCake'
))
# 12-byte object
self
.
assertTrue
(
utils
.
is_valid_id
(
'beef€67890'
.
encode
()))
def
test_bad_length
(
self
):
self
.
assertFalse
(
utils
.
is_valid_id
(
23
*
'a'
))
self
.
assertFalse
(
utils
.
is_valid_id
(
25
*
'a'
))
def
test_non_string
(
self
):
self
.
assertFalse
(
utils
.
is_valid_id
(
None
))
self
.
assertFalse
(
utils
.
is_valid_id
(
1234
))
self
.
assertFalse
(
utils
.
is_valid_id
([
24
*
'a'
]))
def
test_bad_content
(
self
):
# 24-character non-hexadecimal string
self
.
assertFalse
(
utils
.
is_valid_id
(
'deadbeefbeefcakedeadcake'
))
# unicode variant of valid 12-byte str object
self
.
assertFalse
(
utils
.
is_valid_id
(
'beef€67890'
))
class
PrettyDateTest
(
unittest
.
TestCase
):
def
test_none
(
self
):
from
pillar.web.utils
import
pretty_date
self
.
assertIsNone
(
pretty_date
(
None
))
def
test_past
(
self
):
from
pillar.web.utils
import
pretty_date
now
=
datetime
.
datetime
(
2016
,
11
,
8
,
11
,
46
,
30
,
0
,
tz_util
.
utc
)
# a Tuesday
def
pd
(
**
diff
):
return
pretty_date
(
now
-
datetime
.
timedelta
(
**
diff
),
now
=
now
)
self
.
assertEqual
(
'just now'
,
pd
(
seconds
=
5
))
self
.
assertEqual
(
'5m ago'
,
pd
(
minutes
=
5
))
self
.
assertEqual
(
'last Tuesday'
,
pd
(
days
=
7
))
self
.
assertEqual
(
'1 week ago'
,
pd
(
days
=
8
))
self
.
assertEqual
(
'2 weeks ago'
,
pd
(
days
=
14
))
self
.
assertEqual
(
'08 Oct'
,
pd
(
days
=
31
))
self
.
assertEqual
(
'08 Oct 2015'
,
pd
(
days
=
31
+
366
))
def
test_future
(
self
):
from
pillar.web.utils
import
pretty_date
def
pd
(
**
diff
):
return
pretty_date
(
now
+
datetime
.
timedelta
(
**
diff
),
now
=
now
)
now
=
datetime
.
datetime
(
2016
,
11
,
8
,
11
,
46
,
30
,
0
,
tz_util
.
utc
)
# a Tuesday
self
.
assertEqual
(
'just now'
,
pd
(
seconds
=
5
))
self
.
assertEqual
(
'in 5m'
,
pd
(
minutes
=
5
))
self
.
assertEqual
(
'next Tuesday'
,
pd
(
days
=
7
))
self
.
assertEqual
(
'in 1 week'
,
pd
(
days
=
8
))
self
.
assertEqual
(
'in 2 weeks'
,
pd
(
days
=
14
))
self
.
assertEqual
(
'08 Dec'
,
pd
(
days
=
30
))
self
.
assertEqual
(
'08 Dec 2017'
,
pd
(
days
=
30
+
365
))
def
test_past_with_time
(
self
):
from
pillar.web.utils
import
pretty_date
now
=
datetime
.
datetime
(
2016
,
11
,
8
,
11
,
46
,
30
,
0
,
tz_util
.
utc
)
# a Tuesday
def
pd
(
**
diff
):
return
pretty_date
(
now
-
datetime
.
timedelta
(
**
diff
),
detail
=
True
,
now
=
now
)
self
.
assertEqual
(
'just now'
,
pd
(
seconds
=
5
))
self
.
assertEqual
(
'5m ago'
,
pd
(
minutes
=
5
))
self
.
assertEqual
(
'last Tuesday at 11:46'
,
pd
(
days
=
7
))
self
.
assertEqual
(
'1 week ago at 11:46'
,
pd
(
days
=
8
))
self
.
assertEqual
(
'2 weeks ago at 11:46'
,
pd
(
days
=
14
))
self
.
assertEqual
(
'08 Oct at 11:46'
,
pd
(
days
=
31
))
self
.
assertEqual
(
'08 Oct 2015 at 11:46'
,
pd
(
days
=
31
+
366
))
def
test_future_with_time
(
self
):
from
pillar.web.utils
import
pretty_date
def
pd
(
**
diff
):
return
pretty_date
(
now
+
datetime
.
timedelta
(
**
diff
),
detail
=
True
,
now
=
now
)
now
=
datetime
.
datetime
(
2016
,
11
,
8
,
11
,
46
,
30
,
0
,
tz_util
.
utc
)
# a Tuesday
self
.
assertEqual
(
'just now'
,
pd
(
seconds
=
5
))
self
.
assertEqual
(
'in 5m'
,
pd
(
minutes
=
5
))
self
.
assertEqual
(
'next Tuesday at 11:46'
,
pd
(
days
=
7
))
self
.
assertEqual
(
'in 1 week at 11:46'
,
pd
(
days
=
8
))
self
.
assertEqual
(
'in 2 weeks at 11:46'
,
pd
(
days
=
14
))
self
.
assertEqual
(
'08 Dec at 11:46'
,
pd
(
days
=
30
))
self
.
assertEqual
(
'08 Dec 2017 at 11:46'
,
pd
(
days
=
30
+
365
))
class
EvePaginationTest
(
unittest
.
TestCase
):
def
test_last_page_index
(
self
):
from
pillar.web.utils
import
last_page_index
as
lpi
self
.
assertEqual
(
1
,
lpi
({
'total'
:
0
,
'max_results'
:
313
}))
self
.
assertEqual
(
1
,
lpi
({
'total'
:
5
,
'max_results'
:
10
}))
self
.
assertEqual
(
1
,
lpi
({
'total'
:
5
,
'max_results'
:
5
}))
self
.
assertEqual
(
2
,
lpi
({
'total'
:
6
,
'max_results'
:
5
}))
self
.
assertEqual
(
2
,
lpi
({
'total'
:
9
,
'max_results'
:
5
}))
self
.
assertEqual
(
2
,
lpi
({
'total'
:
10
,
'max_results'
:
5
}))
self
.
assertEqual
(
3
,
lpi
({
'total'
:
11
,
'max_results'
:
5
}))
self
.
assertEqual
(
404129352
,
lpi
({
'total'
:
2828905463
,
'max_results'
:
7
}))
File Metadata
Details
Attached
Mime Type
text/x-python
Expires
Wed, May 25, 10:57 PM (2 d)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
f0/f2/de6466073e3f58d5d7b5a0011353
Attached To
rPS Pillar
Event Timeline
Log In to Comment