diff options
| -rwxr-xr-x | freebase/__init__.py | 6 | ||||
| -rw-r--r-- | freebase/api/session.py | 16 | ||||
| -rw-r--r-- | freebase/sandbox.py | 6 | ||||
| -rwxr-xr-x | test/test_all.py | 15 |
4 files changed, 36 insertions, 7 deletions
diff --git a/freebase/__init__.py b/freebase/__init__.py index 3cca4ff..6df7d0c 100755 --- a/freebase/__init__.py +++ b/freebase/__init__.py @@ -5,7 +5,7 @@ import sandbox __all__ = ["HTTPMetawebSession", "sandbox"] -base = HTTPMetawebSession("freebase.com") +_base = HTTPMetawebSession("freebase.com") # we want to add base's functions to __init__.py # so that we can say freebase.func() and really @@ -16,11 +16,11 @@ base = HTTPMetawebSession("freebase.com") # a world in and of itself self = sys.modules[__name__] -for funcname in dir(base): +for funcname in dir(_base): # we only want the 'real' functions if not funcname.startswith("_"): - func = getattr(base, funcname) + func = getattr(_base, funcname) # let's make sure we're getting functions # instead of constants or whatever diff --git a/freebase/api/session.py b/freebase/api/session.py index 28fe569..7db1ae6 100644 --- a/freebase/api/session.py +++ b/freebase/api/session.py @@ -650,6 +650,22 @@ class HTTPMetawebSession(MetawebSession): return self._mqlresult(r) + def uri_submit(self, URI, document=None, content_type=None): + """ submit a URI to freebase. For a more complete description, + see http://www.freebase.com/edit/topic/en/api_service_uri_submit """ + + service = "/api/service/uri_submit" + + form = dict(uri=URI) + if document is not None: + form["document"] = document + if content_type is not None: + form["content_type"] = content_type + + r = self._httpreq_json(service, 'POST', form=form) + return self._mqlresult(r) + + def search(self, query, format=None, prefixed=None, limit=20, start=0, type=None, type_strict="any", domain=None, domain_strict=None, escape="html", timeout=None, mql_filter=None, mql_output=None): diff --git a/freebase/sandbox.py b/freebase/sandbox.py index 2d11be2..0bf3811 100644 --- a/freebase/sandbox.py +++ b/freebase/sandbox.py @@ -30,7 +30,7 @@ import sys from freebase.api.session import HTTPMetawebSession -base = HTTPMetawebSession("sandbox.freebase.com") +_base = HTTPMetawebSession("sandbox.freebase.com") __all__ = ["HTTPMetawebSession"] @@ -41,11 +41,11 @@ __all__ = ["HTTPMetawebSession"] # a little trick to refer to ourselves self = sys.modules[__name__] -for funcname in dir(base): +for funcname in dir(_base): # we only want the 'real' functions if not funcname.startswith("_"): - func = getattr(base, funcname) + func = getattr(_base, funcname) # let's make sure we're getting functions # instead of constants or whatever diff --git a/test/test_all.py b/test/test_all.py index cf52eef..b07cb35 100755 --- a/test/test_all.py +++ b/test/test_all.py @@ -203,7 +203,8 @@ class TestFreebase(unittest.TestCase): self.assertNotEqual(len(r1), len(r2)) def test_touch(self): - pass + # this one's hard to test... let's just make sure it works. + freebase.touch() def test_geosearch(self): @@ -213,8 +214,20 @@ class TestFreebase(unittest.TestCase): r0 = freebase.geosearch(location="/en/california") self.assertNotEqual(len(r0), 0) + json = freebase.geosearch(location="/en/san_francisco", format="json") + kml = freebase.geosearch(location="/en/san_francisco", format="kml") + self.assertNotEqual(json, kml) + def test_uri_submit(self): + # test a pdf + r = freebase.sandbox.uri_submit("http://www.jcbl.or.jp/game/nec/necfest07/nec2007_data/HayashiMiyake.pdf", content_type="application/pdf") + self.assertEqual(r['/type/content/media_type'], 'application/pdf') + + # test an image + r = freebase.sandbox.uri_submit("http://datamob.org/media/detail_freebase.png") + self.assertEqual(r['/type/content/media_type'], 'image/png') + if __name__ == '__main__': |
