def testTimeTravel(self): one_datetime = datetime.datetime(2013, 11, 20, 13, 0, 6) utc_datetime = UtcDatetime(one_datetime, "Europe/Madrid") new_datetime = utc_datetime.advance_in_time(TimePeriod("YEAR", 34)) # Test not destructive self.assertEqual(utc_datetime, UtcDatetime(one_datetime, "Europe/Madrid")) # Test we are in 2047, Maybe Madrid it's then Olympic city? LOL! expected_datetime = UtcDatetime(datetime.datetime(2047, 11, 20, 13, 0, 6), "Europe/Madrid") self.assertEqual(new_datetime, expected_datetime) # Test advance day new_datetime = utc_datetime.advance_in_time(TimePeriod("DAY", 1)) expected_datetime = UtcDatetime(datetime.datetime(2013, 11, 21, 13, 0, 6), "Europe/Madrid") self.assertEqual(new_datetime, expected_datetime) # Test advance 3 month new_datetime = utc_datetime.advance_in_time(TimePeriod("MONTH", 3)) expected_datetime = UtcDatetime(datetime.datetime(2014, 2, 20, 13, 0, 6), "Europe/Madrid") self.assertEqual(new_datetime, expected_datetime) # Test back 31 years, 9 months and 19 days new_datetime = utc_datetime.back_in_time(TimePeriod("YEAR", 31)) new_datetime = new_datetime.back_in_time(TimePeriod("MONTH", 7)) new_datetime = new_datetime.back_in_time(TimePeriod("DAY", 19)) # Cool! its my birthdate!! (NOTE: It diff one hour because there \ # is a local hour change on Spain from April to November) expected_datetime = UtcDatetime(datetime.datetime(1982, 04, 1, 14, 0, 6), "Europe/Madrid") self.assertEqual(new_datetime, expected_datetime)
def setUp(self): unittest.TestCase.setUp(self) self.user = User("laso") self.user.password = "******" self.user.numeric_id = ID((22, )) self.user.firstname = "Jose" self.user.lastname = "Gomez" self.user.country = "ES" self.user.description = "Developer" self.user.email = "*****@*****.**" self.user.visible_email = True self.user.allow_mailing = True self.user.active = True self.user.staff = False self.user.joined_date = UtcDatetime.get_current_utc_datetime() self.user.last_api_call = UtcDatetime.get_current_utc_datetime() self.user.add_block(BRLBlock("laso/laso/block/master"), ["arduino"]) # Profile fields self.user.street_1 = "Melancolia Street" self.user.street_2 = "123" self.user.city = "Madrid" self.user.postal_code = "28027" self.user.region = "Madrid" self.user.vat = "B81884306" self.user.tax_id = "ESB81884306" self.utc_datetime = UtcDatetime.deserialize(datetime.datetime.now())
def deserialize(doc): brl = BRLUser(doc[User.SERIAL_ID_KEY]) user = User(brl) user._encrypted_password = doc[User.SERIAL_ENCRYPTED_PASSWORD] user.password_timestamp = doc.get(User.SERIAL_PASSWORD_TIMESTAMP, None) if User.SERIAL_NUMERIC_ID in doc: user.numeric_id = ID.deserialize(doc[User.SERIAL_NUMERIC_ID]) # Profile fields user.firstname = doc.get(User.SERIAL_FIRSTNAME, None) user.lastname = doc.get(User.SERIAL_LASTNAME, None) user.country = doc.get(User.SERIAL_COUNTRY, None) user.description = doc.get(User.SERIAL_DESCRIPTION, None) user.email = doc.get(User.SERIAL_EMAIL, None) user.visible_email = doc.get(User.SERIAL_VISIBLE_EMAIL, 0) == 1 user.allow_mailing = doc.get(User.SERIAL_ALLOW_MAILING, 0) == 1 user.active = doc.get(User.SERIAL_ACTIVE, 0) == 1 user.staff = doc.get(User.SERIAL_STAFF, 0) == 1 user.joined_date = UtcDatetime.deserialize( doc.get(User.SERIAL_JOINED_DATE, None)) user.confirmation_date = UtcDatetime.deserialize( doc.get(User.SERIAL_CONFIRMATION_DATE, None)) user.confirmation_token = doc.get(User.SERIAL_CONFIRMATION_TOKEN, None) # Old workspace methods user.block_counter = doc.get(User.SERIAL_MOD_COUNTER, 0) blocks_data = doc.get(User.SERIAL_BLOCKS, {}) user.blocks = DictDeserializer( BRLBlock, BlockMetaInfoDeserializer).deserialize(blocks_data) user.administrators = Permissions.deserialize( doc.get(User.SERIAL_ADMINISTRATORS, {})) social_accounts_doc = doc.get(User.SERIAL_SOCIAL_ACCOUNTS) user.social_accounts = DictDeserializer( str, SocialAccount).deserialize(social_accounts_doc) # Achievements user.read_api_counter = doc.get(User.SERIAL_READ_API_COUNTER, 0) user.publish_counter = doc.get(User.SERIAL_PUBLISH_COUNTER, 0) user.reuse_counter = doc.get(User.SERIAL_REUSE_COUNTER, 0) # Additional profile fields user.street_1 = doc.get(User.SERIAL_STREET1, "") user.street_2 = doc.get(User.SERIAL_STREET2, "") user.city = doc.get(User.SERIAL_CITY, "") user.postal_code = doc.get(User.SERIAL_POSTAL_CODE, "") user.region = doc.get(User.SERIAL_REGION, "") user.tax_id = doc.get(User.SERIAL_TAX_ID, "") user.vat = doc.get(User.SERIAL_VAT, "") # OAuth user.oauth_github_token = doc.get(User.SERIAL_OAUTH_GITHUB_TOKEN, None) user.oauth_google_token = doc.get(User.SERIAL_OAUTH_GOOGLE_TOKEN, None) # Max workspace size, default BII_MAX_USER_WORKSPACE_SIZE user.max_workspace_size = doc.get(User.SERIAL_MAX_WORKSPACE_SIZE, BII_MAX_USER_WORKSPACE_SIZE) # Invited by user.invited_by = doc.get(User.SERIAL_INVITED_BY, None) return user
def deserialize(cls, doc): #provider = doc.get(SocialAccount.SERIAL_PROVIDER) uid = doc.get(cls.SERIAL_UID) last_login = UtcDatetime.deserialize(doc.get(cls.SERIAL_LAST_LOGIN)) date_joined = UtcDatetime.deserialize(doc.get(cls.SERIAL_DATE_JOINED)) tokens = ListDeserializer(SocialAccountToken).deserialize(doc.get(cls.SERIAL_TOKENS)) extra_data = doc.get(cls.SERIAL_EXTRA_DATA) return SocialAccount(uid, last_login, date_joined, tokens, extra_data)
def deserialize(cls, doc): #provider = doc.get(SocialAccount.SERIAL_PROVIDER) uid = doc.get(cls.SERIAL_UID) last_login = UtcDatetime.deserialize(doc.get(cls.SERIAL_LAST_LOGIN)) date_joined = UtcDatetime.deserialize(doc.get(cls.SERIAL_DATE_JOINED)) tokens = ListDeserializer(SocialAccountToken).deserialize( doc.get(cls.SERIAL_TOKENS)) extra_data = doc.get(cls.SERIAL_EXTRA_DATA) return SocialAccount(uid, last_login, date_joined, tokens, extra_data)
def deserialize(doc): brl = BRLUser(doc[User.SERIAL_ID_KEY]) user = User(brl) user._encrypted_password = doc[User.SERIAL_ENCRYPTED_PASSWORD] user.password_timestamp = doc.get(User.SERIAL_PASSWORD_TIMESTAMP, None) if User.SERIAL_NUMERIC_ID in doc: user.numeric_id = ID.deserialize(doc[User.SERIAL_NUMERIC_ID]) # Profile fields user.firstname = doc.get(User.SERIAL_FIRSTNAME, None) user.lastname = doc.get(User.SERIAL_LASTNAME, None) user.country = doc.get(User.SERIAL_COUNTRY, None) user.description = doc.get(User.SERIAL_DESCRIPTION, None) user.email = doc.get(User.SERIAL_EMAIL, None) user.visible_email = doc.get(User.SERIAL_VISIBLE_EMAIL, 0) == 1 user.allow_mailing = doc.get(User.SERIAL_ALLOW_MAILING, 0) == 1 user.active = doc.get(User.SERIAL_ACTIVE, 0) == 1 user.staff = doc.get(User.SERIAL_STAFF, 0) == 1 user.joined_date = UtcDatetime.deserialize(doc.get(User.SERIAL_JOINED_DATE, None)) user.confirmation_date = UtcDatetime.deserialize(doc.get(User.SERIAL_CONFIRMATION_DATE, None)) user.confirmation_token = doc.get(User.SERIAL_CONFIRMATION_TOKEN, None) # Old workspace methods user.block_counter = doc.get(User.SERIAL_MOD_COUNTER, 0) blocks_data = doc.get(User.SERIAL_BLOCKS, {}) user.blocks = DictDeserializer(BRLBlock, BlockMetaInfoDeserializer).deserialize(blocks_data) user.administrators = Permissions.deserialize(doc.get(User.SERIAL_ADMINISTRATORS, {})) social_accounts_doc = doc.get(User.SERIAL_SOCIAL_ACCOUNTS) user.social_accounts = DictDeserializer(str, SocialAccount).deserialize(social_accounts_doc) # Achievements user.read_api_counter = doc.get(User.SERIAL_READ_API_COUNTER, 0) user.publish_counter = doc.get(User.SERIAL_PUBLISH_COUNTER, 0) user.reuse_counter = doc.get(User.SERIAL_REUSE_COUNTER, 0) # Additional profile fields user.street_1 = doc.get(User.SERIAL_STREET1, "") user.street_2 = doc.get(User.SERIAL_STREET2, "") user.city = doc.get(User.SERIAL_CITY, "") user.postal_code = doc.get(User.SERIAL_POSTAL_CODE, "") user.region = doc.get(User.SERIAL_REGION, "") user.tax_id = doc.get(User.SERIAL_TAX_ID, "") user.vat = doc.get(User.SERIAL_VAT, "") # OAuth user.oauth_github_token = doc.get(User.SERIAL_OAUTH_GITHUB_TOKEN, None) user.oauth_google_token = doc.get(User.SERIAL_OAUTH_GOOGLE_TOKEN, None) # Max workspace size, default BII_MAX_USER_WORKSPACE_SIZE user.max_workspace_size = doc.get(User.SERIAL_MAX_WORKSPACE_SIZE, BII_MAX_USER_WORKSPACE_SIZE) # Invited by user.invited_by = doc.get(User.SERIAL_INVITED_BY, None) return user
def testCreation(self): self.assertRaises(ValueError, UtcDatetime, "asdasd", 213) utc_datetime = UtcDatetime.get_current_utc_datetime() # Convert to pacific datatime pacific_standart_datetime = utc_datetime.datetime_in_timezone("PST") # Construct from pacific datetime other_utc_datetime = UtcDatetime(pacific_standart_datetime, "PST") # Must be the same!! its the same with different zone!! self.assertEqual(utc_datetime, other_utc_datetime) # Datetimes are also equals, different zone, same time self.assertEqual(pacific_standart_datetime, utc_datetime.datetime_utc)
def test_compare(self): one_datetime = datetime.datetime(2013, 11, 20, 13, 0, 6) utc_datetime = UtcDatetime(one_datetime, "Europe/Madrid") new_datetime = utc_datetime.back_in_time(TimePeriod("YEAR", 31)) self.assertTrue(utc_datetime > new_datetime) self.assertFalse(utc_datetime < new_datetime) self.assertTrue(utc_datetime >= new_datetime) self.assertFalse(utc_datetime <= new_datetime) new_datetime = utc_datetime.advance_in_time(TimePeriod("YEAR", 31)) self.assertFalse(utc_datetime > new_datetime) self.assertTrue(utc_datetime < new_datetime) self.assertFalse(utc_datetime >= new_datetime) self.assertTrue(utc_datetime <= new_datetime)
def test_utc_datetime(self): elem = UtcDatetime.get_current_utc_datetime() serial = elem.serialize() elem2 = UtcDatetime.deserialize(serial) self.assertEqual(elem, elem2)
def setUp(self): self.utc_datetime = UtcDatetime.deserialize(datetime.datetime.now())
def deserialize(cls, doc): token = doc.get(cls.SERIAL_TOKEN) token_secret = doc.get(cls.SERIAL_TOKEN_SECRET) expire_date = UtcDatetime.deserialize(doc.get(cls.SERIAL_EXPIRE_DATE)) return SocialAccountToken(token, token_secret, expire_date)