def test_MarketProfile_update_success(self):
     u = objects.Profile()
     u.about = "updated world"
     p = Profile(self.db)
     p.update(u)
     updated_user = p.get()
     self.assertEqual("updated world", updated_user.about)
 def test_MarketProfile_replace_social_no_proof(self):
     p = Profile(self.db)
     p.add_social_account("FACEBOOK", "test_updated_username")
     u = p.get()
     self.assertEqual(1, len(u.social))
     self.assertEqual(0, u.social[0].type)
     self.assertEqual('test_updated_username', u.social[0].username)
Esempio n. 3
0
 def test_MarketProfile_replace_social_no_proof(self):
     p = Profile(self.db)
     p.add_social_account("FACEBOOK", "test_updated_username")
     u = p.get()
     self.assertEqual(1, len(u.social))
     self.assertEqual(0, u.social[0].type)
     self.assertEqual('test_updated_username', u.social[0].username)
Esempio n. 4
0
 def test_MarketProfile_add_social_invalid(self):
     p = Profile(self.db)
     p.add_social_account("TEST", "test_twitter_username")
     u = p.get()
     self.assertEqual(1, len(u.social))
     self.assertEqual(0, u.social[0].type)
     self.assertEqual('test_fb_username', u.social[0].username)
Esempio n. 5
0
 def test_MarketProfile_update_success(self):
     u = objects.Profile()
     u.about = "updated world"
     p = Profile(self.db)
     p.update(u)
     updated_user = p.get()
     self.assertEqual("updated world", updated_user.about)
 def test_MarketProfile_add_social_invalid(self):
     p = Profile(self.db)
     p.add_social_account("TEST", "test_twitter_username")
     u = p.get()
     self.assertEqual(1, len(u.social))
     self.assertEqual(0, u.social[0].type)
     self.assertEqual('test_fb_username', u.social[0].username)
 def test_MarketProfile_add_pgp_key_success(self):
     p = Profile(self.db)
     self.assertTrue(
         p.add_pgp_key(self.PUBLIC_KEY, self.SIGNATURE, self.VALID_GUID))
     u = p.get()
     self.assertEqual(self.SIGNATURE, u.pgp_key.signature)
     self.assertEqual(self.PUBLIC_KEY, u.pgp_key.public_key)
Esempio n. 8
0
 def update_profile(self, request):
     try:
         p = Profile(self.db)
         if not p.get().encryption_key \
                 and "name" not in request.args \
                 and "location" not in request.args:
             request.write(json.dumps({"success": False, "reason": "name or location not included"}, indent=4))
             request.finish()
             return False
         u = objects.Profile()
         if "name" in request.args:
             u.name = request.args["name"][0]
         if "location" in request.args:
             # This needs to be formatted. Either here or from the UI.
             u.location = CountryCode.Value(request.args["location"][0].upper())
         if "handle" in request.args:
             u.handle = request.args["handle"][0]
         if "about" in request.args:
             u.about = request.args["about"][0]
         if "short_description" in request.args:
             u.short_description = request.args["short_description"][0]
         if "nsfw" in request.args:
             u.nsfw = bool(request.args["nsfw"][0])
         if "vendor" in request.args:
             u.vendor = bool(request.args["vendor"][0])
         if "moderator" in request.args:
             u.moderator = bool(request.args["moderator"][0])
         if "website" in request.args:
             u.website = request.args["website"][0]
         if "email" in request.args:
             u.email = request.args["email"][0]
         if "primary_color" in request.args:
             u.primary_color = int(request.args["primary_color"][0])
         if "secondary_color" in request.args:
             u.secondary_color = int(request.args["secondary_color"][0])
         if "background_color" in request.args:
             u.background_color = int(request.args["background_color"][0])
         if "text_color" in request.args:
             u.text_color = int(request.args["text_color"][0])
         if "avatar" in request.args:
             u.avatar_hash = unhexlify(request.args["avatar"][0])
         if "header" in request.args:
             u.header_hash = unhexlify(request.args["header"][0])
         if "pgp_key" in request.args and "signature" in request.args:
             p.add_pgp_key(request.args["pgp_key"][0], request.args["signature"][0],
                           self.keychain.guid.encode("hex"))
         enc = u.PublicKey()
         enc.public_key = self.keychain.encryption_pubkey
         enc.signature = self.keychain.signing_key.sign(enc.public_key)[:64]
         u.encryption_key.MergeFrom(enc)
         p.update(u)
         request.write(json.dumps({"success": True}))
         request.finish()
         return server.NOT_DONE_YET
     except Exception, e:
         request.write(json.dumps({"success": False, "reason": e.message}, indent=4))
         request.finish()
         return server.NOT_DONE_YET
 def test_MarketProfile_add_social_no_proof(self):
     p = Profile(self.db)
     p.add_social_account("TWITTER", "test_twitter_username")
     u = p.get()
     self.assertEqual(2, len(u.social))
     self.assertEqual(0, u.social[0].type)
     self.assertEqual('test_fb_username', u.social[0].username)
     self.assertEqual(1, u.social[1].type)
     self.assertEqual('test_twitter_username', u.social[1].username)
Esempio n. 10
0
 def test_MarketProfile_add_social_no_proof(self):
     p = Profile(self.db)
     p.add_social_account("TWITTER", "test_twitter_username")
     u = p.get()
     self.assertEqual(2, len(u.social))
     self.assertEqual(0, u.social[0].type)
     self.assertEqual('test_fb_username', u.social[0].username)
     self.assertEqual(1, u.social[1].type)
     self.assertEqual('test_twitter_username', u.social[1].username)
Esempio n. 11
0
 def update_profile(self, request):
     try:
         p = Profile(self.db)
         if not p.get().encryption_key \
                 and "name" not in request.args \
                 and "location" not in request.args:
             return "False"
         u = objects.Profile()
         if "name" in request.args:
             u.name = request.args["name"][0]
         if "location" in request.args:
             # This needs to be formatted. Either here or from the UI.
             u.location = CountryCode.Value(request.args["location"][0].upper())
         if "handle" in request.args:
             u.handle = request.args["handle"][0]
         if "about" in request.args:
             u.about = request.args["about"][0]
         if "short_description" in request.args:
             u.short_description = request.args["short_description"][0]
         if "nsfw" in request.args:
             u.nsfw = True
         if "vendor" in request.args:
             u.vendor = True
         if "moderator" in request.args:
             u.moderator = True
         if "website" in request.args:
             u.website = request.args["website"][0]
         if "email" in request.args:
             u.email = request.args["email"][0]
         if "avatar" in request.args:
             with open(DATA_FOLDER + "store/avatar", 'wb') as outfile:
                 outfile.write(request.args["avatar"][0])
             avatar_hash = digest(request.args["avatar"][0])
             self.db.HashMap().insert(avatar_hash, DATA_FOLDER + "store/avatar")
             u.avatar_hash = avatar_hash
         if "header" in request.args:
             with open(DATA_FOLDER + "store/header", 'wb') as outfile:
                 outfile.write(request.args["header"][0])
             header_hash = digest(request.args["header"][0])
             self.db.HashMap().insert(header_hash, DATA_FOLDER + "store/header")
             u.header_hash = header_hash
         if "pgp_key" in request.args and "signature" in request.args:
             p.add_pgp_key(request.args["pgp_key"][0], request.args["signature"][0],
                           self.keychain.guid.encode("hex"))
         enc = u.PublicKey()
         enc.public_key = self.keychain.encryption_pubkey
         enc.signature = self.keychain.signing_key.sign(enc.public_key)[:64]
         u.encryption_key.MergeFrom(enc)
         p.update(u)
         request.write(json.dumps({"success": True}))
         request.finish()
         return server.NOT_DONE_YET
     except Exception, e:
         request.write(json.dumps({"success": False, "reason": e.message}, indent=4))
         request.finish()
         return server.NOT_DONE_YET
Esempio n. 12
0
 def update_profile(self, request):
     p = Profile()
     if not p.get().encryption_key \
             and "name" not in request.args \
             and "location" not in request.args:
         return "False"
     u = objects.Profile()
     if "name" in request.args:
         u.name = request.args["name"][0]
     if "location" in request.args:
         # This needs to be formatted. Either here or from the UI.
         u.location = CountryCode.Value(request.args["location"][0].upper())
     if "handle" in request.args:
         u.handle = request.args["handle"][0]
     if "about" in request.args:
         u.about = request.args["about"][0]
     if "short_description" in request.args:
         u.short_description = request.args["short_description"][0]
     if "nsfw" in request.args:
         u.nsfw = True
     if "vendor" in request.args:
         u.vendor = True
     if "moderator" in request.args:
         u.moderator = True
     if "website" in request.args:
         u.website = request.args["website"][0]
     if "email" in request.args:
         u.email = request.args["email"][0]
     if "avatar" in request.args:
         with open(DATA_FOLDER + "store/avatar", 'wb') as outfile:
             outfile.write(request.args["avatar"][0])
         avatar_hash = digest(request.args["avatar"][0])
         HashMap().insert(avatar_hash, DATA_FOLDER + "store/avatar")
         u.avatar_hash = avatar_hash
     if "header" in request.args:
         with open(DATA_FOLDER + "store/header", 'wb') as outfile:
             outfile.write(request.args["header"][0])
         header_hash = digest(request.args["header"][0])
         HashMap().insert(header_hash, DATA_FOLDER + "store/header")
         u.header_hash = header_hash
     if "pgp_key" in request.args and "signature" in request.args:
         p.add_pgp_key(request.args["pgp_key"][0], request.args["signature"][0],
                       KeyChain().guid.encode("hex"))
     enc = u.PublicKey()
     enc.public_key = KeyChain().encryption_pubkey
     enc.signature = KeyChain().signing_key.sign(enc.public_key)[:64]
     u.encryption_key.MergeFrom(enc)
     p.update(u)
Esempio n. 13
0
 def update_profile(self, request):
     p = Profile()
     if not p.get().encryption_key \
             and "name" not in request.args \
             and "location" not in request.args:
         return "False"
     u = objects.Profile()
     if "name" in request.args:
         u.name = request.args["name"][0]
     if "location" in request.args:
         # This needs to be formatted. Either here or from the UI.
         u.location = CountryCode.Value(request.args["location"][0].upper())
     if "handle" in request.args:
         u.handle = request.args["handle"][0]
     if "about" in request.args:
         u.about = request.args["about"][0]
     if "nsfw" in request.args:
         u.nsfw = True
     if "vendor" in request.args:
         u.vendor = True
     if "moderator" in request.args:
         u.moderator = True
     if "website" in request.args:
         u.website = request.args["website"][0]
     if "email" in request.args:
         u.email = request.args["email"][0]
     if "avatar" in request.args:
         with open(DATA_FOLDER + "store/avatar", 'wb') as outfile:
             outfile.write(request.args["avatar"][0])
         avatar_hash = digest(request.args["avatar"][0])
         HashMap().insert(avatar_hash, DATA_FOLDER + "store/avatar")
         u.avatar_hash = avatar_hash
     if "header" in request.args:
         with open(DATA_FOLDER + "store/header", 'wb') as outfile:
             outfile.write(request.args["header"][0])
         header_hash = digest(request.args["header"][0])
         HashMap().insert(header_hash, DATA_FOLDER + "store/header")
         u.header_hash = header_hash
     if "pgp_key" in request.args and "signature" in request.args:
         p.add_pgp_key(request.args["pgp_key"][0],
                       request.args["signature"][0],
                       KeyChain().guid.encode("hex"))
     u.encryption_key = KeyChain().encryption_pubkey
     p.update(u)
Esempio n. 14
0
 def test_MarketProfile_add_pgp_key_success(self):
     p = Profile(self.db)
     self.assertTrue(p.add_pgp_key(self.PUBLIC_KEY, self.SIGNATURE, self.VALID_GUID))
     u = p.get()
     self.assertEqual(self.SIGNATURE, u.pgp_key.signature)
     self.assertEqual(self.PUBLIC_KEY, u.pgp_key.public_key)
Esempio n. 15
0
 def test_MarketProfile_remove_lowercase_social(self):
     p = Profile(self.db)
     p.remove_social_account("facebook")
     u = p.get()
     self.assertEqual(0, len(u.social))
Esempio n. 16
0
 def test_MarketProfile_remove_social_invalid(self):
     p = Profile(self.db)
     p.remove_social_account("TEST")
     u = p.get()
     self.assertEqual(1, len(u.social))
Esempio n. 17
0
 def test_MarketProfile_remove_social_invalid(self):
     p = Profile(self.db)
     p.remove_social_account("TEST")
     u = p.get()
     self.assertEqual(1, len(u.social))
Esempio n. 18
0
 def test_MarketProfile_remove_lowercase_social(self):
     p = Profile(self.db)
     p.remove_social_account("facebook")
     u = p.get()
     self.assertEqual(0, len(u.social))
Esempio n. 19
0
 def test_MarketProfile_remove_field_success(self):
     p = Profile(self.db)
     p.remove_field("about")
     user = p.get()
     self.assertEqual('test_name', user.name)
     self.assertEqual('', user.about)
Esempio n. 20
0
 def test_MarketProfile_remove_social(self):
     p = Profile(self.db)
     p.remove_social_account("FACEBOOK")
     u = p.get()
     self.assertEqual(0, len(u.social))
Esempio n. 21
0
 def test_MarketProfile_remove_field_success(self):
     p = Profile(self.db)
     p.remove_field("about")
     user = p.get()
     self.assertEqual('test_name', user.name)
     self.assertEqual('', user.about)
Esempio n. 22
0
 def update_profile(self, request):
     try:
         p = Profile(self.db)
         if not p.get().encryption_key \
                 and "name" not in request.args \
                 and "location" not in request.args:
             request.write(
                 json.dumps(
                     {
                         "success": False,
                         "reason": "name or location not included"
                     },
                     indent=4))
             request.finish()
             return False
         u = objects.Profile()
         if "name" in request.args:
             u.name = request.args["name"][0]
         if "location" in request.args:
             # This needs to be formatted. Either here or from the UI.
             u.location = CountryCode.Value(
                 request.args["location"][0].upper())
         if "handle" in request.args:
             u.handle = request.args["handle"][0]
         if "about" in request.args:
             u.about = request.args["about"][0]
         if "short_description" in request.args:
             u.short_description = request.args["short_description"][0]
         if "nsfw" in request.args:
             u.nsfw = bool(request.args["nsfw"][0])
         if "vendor" in request.args:
             u.vendor = bool(request.args["vendor"][0])
         if "moderator" in request.args:
             u.moderator = bool(request.args["moderator"][0])
         if "website" in request.args:
             u.website = request.args["website"][0]
         if "email" in request.args:
             u.email = request.args["email"][0]
         if "primary_color" in request.args:
             u.primary_color = int(request.args["primary_color"][0])
         if "secondary_color" in request.args:
             u.secondary_color = int(request.args["secondary_color"][0])
         if "background_color" in request.args:
             u.background_color = int(request.args["background_color"][0])
         if "text_color" in request.args:
             u.text_color = int(request.args["text_color"][0])
         if "avatar" in request.args:
             u.avatar_hash = unhexlify(request.args["avatar"][0])
         if "header" in request.args:
             u.header_hash = unhexlify(request.args["header"][0])
         if "pgp_key" in request.args and "signature" in request.args:
             p.add_pgp_key(request.args["pgp_key"][0],
                           request.args["signature"][0],
                           self.keychain.guid.encode("hex"))
         enc = u.PublicKey()
         enc.public_key = self.keychain.encryption_pubkey
         enc.signature = self.keychain.signing_key.sign(enc.public_key)[:64]
         u.encryption_key.MergeFrom(enc)
         p.update(u)
         request.write(json.dumps({"success": True}))
         request.finish()
         return server.NOT_DONE_YET
     except Exception, e:
         request.write(
             json.dumps({
                 "success": False,
                 "reason": e.message
             }, indent=4))
         request.finish()
         return server.NOT_DONE_YET
Esempio n. 23
0
 def test_MarketProfile_remove_social(self):
     p = Profile(self.db)
     p.remove_social_account("FACEBOOK")
     u = p.get()
     self.assertEqual(0, len(u.social))