diff options
| author | nitromaster101 <nitromaster101@5914aa95-5b3a-0410-a3b5-7b719e7fe9b2> | 2009-06-17 18:49:38 +0000 |
|---|---|---|
| committer | nitromaster101 <nitromaster101@5914aa95-5b3a-0410-a3b5-7b719e7fe9b2> | 2009-06-17 18:49:38 +0000 |
| commit | af28a4f55a9c9d2142050c91c5ffdacd2262332b (patch) | |
| tree | b3b67af011309f1ca294840bc989f9d831b5c4f3 /freebase-api/test | |
| parent | 02b92cfdfc2c294ad12308cef3b25dcaf477d741 (diff) | |
updated api, added documentation, added freebase.funcname functionality
git-svn-id: http://freebase-python.googlecode.com/svn/trunk@86 5914aa95-5b3a-0410-a3b5-7b719e7fe9b2
Diffstat (limited to 'freebase-api/test')
| -rwxr-xr-x | freebase-api/test/test_all.py | 124 |
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() |
