summaryrefslogtreecommitdiff
path: root/freebase-api/test
diff options
context:
space:
mode:
Diffstat (limited to 'freebase-api/test')
-rwxr-xr-xfreebase-api/test/test_all.py124
1 files changed, 114 insertions, 10 deletions
diff --git a/freebase-api/test/test_all.py b/freebase-api/test/test_all.py
index f23dc14..1a9e124 100755
--- a/freebase-api/test/test_all.py
+++ b/freebase-api/test/test_all.py
@@ -28,8 +28,11 @@
import unittest
-import sys
-from freebase.api import HTTPMetawebSession
+import sys, logging
+import freebase
+import random
+
+from freebase.api import HTTPMetawebSession, MetawebError
USERNAME = 'username'
@@ -39,28 +42,79 @@ TEST_QUERY = {'id': 'null', 'name': 'Sting'}
class TestFreebase(unittest.TestCase):
- def test_login(self):
+ def test_freebase_dot_login_logout(self):
+ freebase.login(username=USERNAME, password=PASSWORD)
+ self.assertNotEqual(freebase.user_info(), None)
+ self.assertEqual(freebase.loggedin(), True)
+ freebase.logout()
+ self.assertRaises(MetawebError, freebase.user_info)
+ self.assertEqual(freebase.loggedin(), False)
+
+ def test_login_logout(self):
mss = HTTPMetawebSession(API_HOST, username=USERNAME,
password=PASSWORD)
mss.login()
+
+ user_info = mss.user_info()
+ self.assertNotEqual(None, user_info)
+ self.assertEqual(user_info.code, "/api/status/ok")
+ self.assertEqual(mss.loggedin(), True)
+
+ mss.logout()
+ self.assertRaises(MetawebError, mss.user_info)
+ self.assertEqual(mss.loggedin(), False)
+
- # check mss._cookies?
+ def test_freebase_dot_read(self):
+ query = {'type':'/music/artist','guid':[{}],'name':'Sting', 'album':[{}]}
+
+ result = freebase.mqlread(query)
+
+ self.assertNotEqual(None, result)
+ self.assert_(result.has_key('guid'))
+ self.assert_(result.has_key('type'))
+ self.assert_(result.has_key('name'))
+ self.assert_(result.has_key('album'))
+ self.assertEqual(type([]), type(result['album']))
+ self.assert_(len(result['album']) > 0)
+ self.assertEqual( 'Sting', result['name'])
+ self.assertEqual('#9202a8c04000641f8000000000092a01', result['guid'][0]['value'])
+
+ def test_freebase_dot_write(self):
+ read_query = {'type':'/music/artist','name':'Yanni\'s Cousin Tom', 'id':{}}
+
+ freebase.sandbox.login(username=USERNAME, password=PASSWORD)
+ result = freebase.sandbox.mqlread(read_query)
+ self.assertEqual(None, result)
+
+ write_query = {'create':'unless_exists', 'type':'/music/artist','name':'Yanni'}
+
+ write_result = freebase.sandbox.mqlwrite(write_query)
+ self.assertNotEqual(None, write_result)
+ self.assert_(write_result.has_key('create'))
+ self.assert_(write_result.has_key('type'))
+ self.assert_(write_result.has_key('name'))
+ self.assertEqual('existed', write_result['create'])
+ self.assertEqual('Yanni', write_result['name'])
+ self.assertEqual('/music/artist', write_result['type'])
def test_read(self):
- query = {'type':'/music/artist','id':[{}],'name':'Sting', 'album':[{}]}
+ query = {'type':'/music/artist','guid':[{}],'name':'Sting', 'album':[{}]}
mss = HTTPMetawebSession(API_HOST)
result = mss.mqlread(query)
+
self.assertNotEqual(None, result)
- self.assert_(result.has_key('id'))
+ self.assert_(result.has_key('guid'))
self.assert_(result.has_key('type'))
self.assert_(result.has_key('name'))
self.assert_(result.has_key('album'))
- self.assertEqual([].__class__, result['album'].__class__)
- self.assert_( result['album'].__len__() > 0)
+ self.assertEqual(type([]), type(result['album']))
+ self.assert_(len(result['album']) > 0)
self.assertEqual( 'Sting', result['name'])
- self.assertEqual( '/guid/9202a8c04000641f8000000000092a01', result['id'][0]['value'], str(result['id']))
+ self.assertEqual('#9202a8c04000641f8000000000092a01', result['guid'][0]['value'])
+
def test_write(self):
read_query = {'type':'/music/artist','name':'Yanni\'s Cousin Tom', 'id':{}}
@@ -81,6 +135,56 @@ class TestFreebase(unittest.TestCase):
self.assertEqual('Yanni', write_result['name'])
self.assertEqual('/music/artist', write_result['type'])
+ def test_trans_blurb(self):
+ kurt = "/en/kurt_vonnegut"
+
+ blurb = freebase.blurb(kurt)
+ self.assert_(blurb.startswith("Kurt Vonnegut"))
+ self.assertNotEqual(len(blurb), 0)
+
+ blurb14 = freebase.blurb(kurt, maxlength=14)
+ blurb57 = freebase.blurb(kurt, maxlength=57)
+ self.assertNotEqual(len(blurb14), len(blurb57))
+
+ blurbpar = freebase.blurb(kurt, break_paragraphs=True, maxlength=20000)
+ blurbnopar = freebase.blurb(kurt, break_paragraphs=False, maxlength=20000)
+ # self.assertNotEqual(blurbpar, blurbnopar) this doesn't work unless I get a good example
+ # of an article with paragraphs.
+
+ def test_trans_raw(self):
+ kurt = "/en/kurt_vonnegut"
+
+ self.assertRaises(MetawebError, lambda: freebase.raw(kurt))
+
+ r = freebase.mqlread({"id":kurt, "/common/topic/article":[{"id":None, "optional":True, "limit":1}]})
+ raw = freebase.raw(r["/common/topic/article"][0].id)
+ self.assertNotEqual(len(raw), 0)
+
+ def test_trans_image_thumb(self):
+ kurt = "/en/kurt_vonnegut"
+
+ r = freebase.mqlread({"id":kurt, "/common/topic/image":[{"id":None, "optional":True, "limit":1}]})
+ imageid = r["/common/topic/image"][0].id
+ rawimage = freebase.raw(imageid)
+
+ thumbedimage = freebase.image_thumb(imageid, maxheight=99)
+ self.assertNotEqual(rawimage, thumbedimage)
+
+ def test_upload(self):
+ my_text = "Kurt Vonnegut was an author! " + str(random.random())
+
+ freebase.sandbox.login(USERNAME, PASSWORD)
+ response = freebase.sandbox.upload(my_text, "text/plain")
+
+ self.assertEqual(freebase.sandbox.raw(response.id), my_text)
+ # since it's text/plain, blurb should also be equal
+ self.assertEqual(freebase.sandbox.blurb(response.id), my_text)
+
+
if __name__ == '__main__':
- unittest.main()
+ if USERNAME == "username" and PASSWORD == "password":
+ print "In order to run the tests, we need to use a valid freebase username and password"
+ USERNAME = raw_input("Please enter your username: ")
+ PASSWORD = raw_input("Please enter your password (it'll appear in cleartext): ")
+ unittest.main()