|
1 | 1 | import unittest
|
2 |
| -from six import text_type, u |
| 2 | +from six import text_type, u, PY2, PY3 |
3 | 3 | from nose.tools import raises
|
4 | 4 | import time
|
| 5 | +import datetime |
| 6 | +import calendar |
| 7 | +import pytz |
5 | 8 |
|
6 | 9 | from opentok import OpenTok, Roles, OpenTokException
|
7 | 10 |
|
@@ -31,11 +34,28 @@ def test_generate_role_token(self):
|
31 | 34 | assert token_signature_validator(token, self.api_secret)
|
32 | 35 |
|
33 | 36 | def test_generate_expires_token(self):
|
34 |
| - expire_time = time.time() |
| 37 | + # an integer is a valid argument |
| 38 | + expire_time = int(time.time()) + 100 |
35 | 39 | token = self.opentok.generate_token(self.session_id, expire_time=expire_time)
|
36 | 40 | assert isinstance(token, text_type)
|
37 |
| - assert token_decoder(token)[u('expire_time')] == text_type(int(expire_time)) |
| 41 | + assert token_decoder(token)[u('expire_time')] == text_type(expire_time) |
38 | 42 | assert token_signature_validator(token, self.api_secret)
|
| 43 | + # anything that can be coerced into an integer is also valid |
| 44 | + expire_time = text_type(int(time.time()) + 100) |
| 45 | + token = self.opentok.generate_token(self.session_id, expire_time=expire_time) |
| 46 | + assert isinstance(token, text_type) |
| 47 | + assert token_decoder(token)[u('expire_time')] == expire_time |
| 48 | + assert token_signature_validator(token, self.api_secret) |
| 49 | + # a datetime object is also valid |
| 50 | + if PY2: |
| 51 | + expire_time = datetime.datetime.fromtimestamp(time.time(), pytz.UTC) + datetime.timedelta(days=1) |
| 52 | + if PY3: |
| 53 | + expire_time = datetime.datetime.fromtimestamp(time.time(), datetime.timezone.utc) + datetime.timedelta(days=1) |
| 54 | + token = self.opentok.generate_token(self.session_id, expire_time=expire_time) |
| 55 | + assert isinstance(token, text_type) |
| 56 | + assert token_decoder(token)[u('expire_time')] == text_type(calendar.timegm(expire_time.utctimetuple())) |
| 57 | + assert token_signature_validator(token, self.api_secret) |
| 58 | + |
39 | 59 |
|
40 | 60 | def test_generate_data_token(self):
|
41 | 61 | data = u('name=Johnny')
|
|
0 commit comments