Exemplo n.º 1
0
 def my_get(url, **kwargs):
     urlspec = spec[url]
     if isinstance(urlspec, str):
         urlspec = {'file': urlspec}
     if 'charset' not in urlspec:
         urlspec['charset'] = 'utf-8'
     url_location = os.path.join(os.path.dirname(specfile),
                                 urlspec['file'])
     res = Mock()
     # load the .content property
     with open(url_location, "rb") as fp:
         res.content = fp.read()
     # but only load .text if a charset is present (note
     # default value of 'utf-8' above -- set 'charset': null in
     # the json file for binary files
     if urlspec['charset']:
         with codecs.open(url_location, "r", encoding=urlspec['charset']) as fp:
             res.text = fp.read()
     # FIXME: Using a defaultdict ensures that we'll never trip
     # over the non-existance of certain headers. WE should
     # specify only the most basic headers to make sure calling
     # code doesn't rely on eg. the etag header always being
     # there, because it won't
     res.headers = collections.defaultdict(lambda: None)
     res.headers['X-These-Headers-Are'] = 'Faked'
     res.status_code = 200
     return res
Exemplo n.º 2
0
    def test_sesame_select(self, mock_get):
        store = TripleStore.connect("SESAME", "", "")
        rf = util.readfile
        want = rf("test/files/triplestore/select-results.xml").encode()
        got = store.select("the-query")
        self.assertEqual(want, got)
        self.assertEqual(mock_get.call_count, 1)

        want = rf("test/files/triplestore/select-results.json")
        got = store.select("the-query", format="json").decode()
        self.assertEqual(json.loads(want), json.loads(got))
        self.assertEqual(mock_get.call_count, 2)

        want = json.loads(
            rf("test/files/triplestore/select-results-python.json"),
            object_hook=util.make_json_date_object_hook("issued"))
        got = store.select("the-query", format="python")
        self.assertEqual(want, got)
        self.assertEqual(mock_get.call_count, 3)

        with self.assertRaises(errors.TriplestoreError):
            mockresponse = Mock()
            mockresponse.text = "This is the actual error text"
            mock_get.side_effect = requests.exceptions.HTTPError(
                "Server error", response=mockresponse)
            got = store.select("the-query", format="python")
Exemplo n.º 3
0
 def _myget(self, url, **kwargs):
     res = Mock()
     res.headers = collections.defaultdict(lambda: None)
     res.headers['Content-type'] = "text/html"
     res.status_code = 200
     res.encoding = 'utf-8'
     if url == "http://example.org/":
         res.content = b"<p><a href='doc/a_.html'>ID: a</a></p>"
     elif url == "http://example.org/doc/a_.html":
         res.content = b"<p>This is doc A</p>"
     else:
         raise ValueError("Unknown url %s" % url)
     res.text = res.content.decode()
     return res
Exemplo n.º 4
0
 def _myget(self, url, **kwargs):
     res = Mock()
     res.headers = collections.defaultdict(lambda:None)
     res.headers['Content-type'] = "text/html"
     res.status_code = 200
     res.encoding = 'utf-8'
     if url == "http://example.org/":
         res.content = b"<p><a href='doc/a_.html'>ID: a</a></p>"
     elif url == "http://example.org/doc/a_.html":
         res.content = b"<p>This is doc A</p>"
     else:
         raise ValueError("Unknown url %s" % url)
     res.text = res.content.decode()
     return res
Exemplo n.º 5
0
 def makeresponse(*args, **kwargs):
     if len(returned) > len(responses):
         raise IndexError("Ran out of canned responses after %s calls" % len(returned))
     resp = Mock()
     resp.status_code = responses[len(returned)][0]
     responsefile = responses[len(returned)][1]
     if responsefile:
         responsefile = "test/files/triplestore/" + responsefile
         resp.content = util.readfile(responsefile, "rb")
         resp.text = util.readfile(responsefile)
         if responsefile.endswith(".json"):
             data = json.loads(util.readfile(responsefile))
             resp.json = Mock(return_value=data)
     returned.append(True)
     return resp
Exemplo n.º 6
0
 def makeresponse(*args, **kwargs):
     if len(returned) > len(responses):
         raise IndexError("Ran out of canned responses after %s calls" % len(returned))
     resp = Mock()
     resp.status_code = responses[len(returned)][0]
     responsefile = responses[len(returned)][1]
     if responsefile:
         responsefile = "test/files/triplestore/" + responsefile
         resp.content = util.readfile(responsefile, "rb")
         resp.text = util.readfile(responsefile)
         if responsefile.endswith(".json"):
             data = json.loads(util.readfile(responsefile))
             resp.json = Mock(return_value=data)
     returned.append(True)
     return resp
Exemplo n.º 7
0
    def test_sesame_select(self, mock_get):
        store = TripleStore.connect("SESAME", "", "")
        rf = util.readfile
        want = rf("test/files/triplestore/select-results.xml").encode()
        got = store.select("the-query")
        self.assertEqual(want, got)
        self.assertEqual(mock_get.call_count, 1)

        want = rf("test/files/triplestore/select-results.json")
        got = store.select("the-query", format="json").decode()
        self.assertEqual(json.loads(want), json.loads(got))
        self.assertEqual(mock_get.call_count, 2)

        want = json.loads(rf("test/files/triplestore/select-results-python.json"),
                          object_hook=util.make_json_date_object_hook("issued"))
        got = store.select("the-query", format="python")
        self.assertEqual(want, got)
        self.assertEqual(mock_get.call_count, 3)

        with self.assertRaises(errors.TriplestoreError):
            mockresponse = Mock()
            mockresponse.text = "This is the actual error text"
            mock_get.side_effect = requests.exceptions.HTTPError("Server error", response=mockresponse)
            got = store.select("the-query", format="python")
Exemplo n.º 8
0
 def get_sesame(url):
     if not 'openrdf-sesame' in url:
         raise requests.exceptions.HTTPError
     resp = Mock()
     resp.text = "ok"
     return resp
Exemplo n.º 9
0
 def get_sesame(url):
     if not 'openrdf-sesame' in url:
         raise requests.exceptions.HTTPError
     resp = Mock()
     resp.text = "ok"
     return resp