Example #1
0
    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)
Example #2
0
 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())
Example #3
0
    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
Example #4
0
 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 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)
Example #6
0
 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)
Example #7
0
 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)
Example #8
0
    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
Example #9
0
    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)
Example #10
0
    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_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 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)
Example #13
0
 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())
Example #15
0
 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)
Example #16
0
 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)
 def setUp(self):
     self.utc_datetime = UtcDatetime.deserialize(datetime.datetime.now())
 def test_utc_datetime(self):
     elem = UtcDatetime.get_current_utc_datetime()
     serial = elem.serialize()
     elem2 = UtcDatetime.deserialize(serial)
     self.assertEqual(elem, elem2)