Ejemplo n.º 1
0
 def test_hgetall(self):
     h = {b"f1": b"one", b"f2": b"two"}
     Entry.register_response("HGETALL hash", h)
     self.assertEqual(self.rclient.hgetall("hash"), h)
     self.assertEqual(len(Mocket.request_list()), 1)
     self.assertEqual(Mocket.request_list()[0].data,
                      b"*2\r\n$7\r\nHGETALL\r\n$4\r\nhash\r\n")
Ejemplo n.º 2
0
 def test_multipart(self):
     url = "http://httpbin.org/post"
     data = '--xXXxXXyYYzzz\r\nContent-Disposition: form-data; name="content"\r\nContent-Type: text/plain; charset=utf-8\r\nContent-Length: 68\r\n\r\nAction: comment\nText: Comment with attach\nAttachment: x1.txt, x2.txt\r\n--xXXxXXyYYzzz\r\nContent-Disposition: form-data; name="attachment_2"; filename="x.txt"\r\nContent-Type: text/plain\r\nContent-Length: 4\r\n\r\nbye\n\r\n--xXXxXXyYYzzz\r\nContent-Disposition: form-data; name="attachment_1"; filename="x.txt"\r\nContent-Type: text/plain\r\nContent-Length: 4\r\n\r\nbye\n\r\n--xXXxXXyYYzzz--\r\n'
     headers = {
         "Content-Length": "495",
         "Content-Type": "multipart/form-data; boundary=xXXxXXyYYzzz",
         "Accept": "text/plain",
         "User-Agent": "Mocket",
         "Accept-encoding": "identity",
     }
     Entry.register(Entry.POST, url)
     response = requests.post(url, data=data, headers=headers)
     self.assertEqual(response.status_code, 200)
     last_request = Mocket.last_request()
     self.assertEqual(last_request.method, "POST")
     self.assertEqual(last_request.path, "/post")
     self.assertEqual(last_request.body, data)
     sent_headers = dict(last_request.headers)
     self.assertEqualHeaders(
         sent_headers,
         {
             "accept": "text/plain",
             "accept-encoding": "identity",
             "content-length": "495",
             "content-type": "multipart/form-data; boundary=xXXxXXyYYzzz",
             "host": "httpbin.org",
             "user-agent": "Mocket",
             "connection": "keep-alive",
         },
     )
     self.assertEqual(len(Mocket.request_list()), 1)
Ejemplo n.º 3
0
    def test_sendall_json(self):
        with mock.patch("time.gmtime") as tt:
            tt.return_value = time.struct_time((2013, 4, 30, 10, 39, 21, 1, 120, 0))
            Entry.single_register(
                Entry.GET,
                "http://testme.org/get?a=1&b=2#test",
                body='{"a": "€"}',
                headers={"content-type": "application/json"},
            )

        response = urlopen("http://testme.org/get?b=2&a=1#test", timeout=10)
        self.assertEqual(response.code, 200)
        self.assertEqual(response.read(), b'{"a": "\xe2\x82\xac"}')
        self.assertEqualHeaders(
            dict(response.headers),
            {
                "status": "200",
                "content-length": "12",
                "server": "Python/Mocket",
                "connection": "close",
                "date": "Tue, 30 Apr 2013 10:39:21 GMT",
                "content-type": "application/json",
            },
        )
        self.assertEqual(len(Mocket.request_list()), 1)
Ejemplo n.º 4
0
 def test_set(self):
     Entry.register_response('SET mocket "is awesome!"', OK)
     self.assertTrue(self.rclient.set("mocket", "is awesome!"))
     self.assertEqual(len(Mocket.request_list()), 1)
     self.assertEqual(
         Mocket.last_request().data,
         b"*3\r\n$3\r\nSET\r\n$6\r\nmocket\r\n$11\r\nis awesome!\r\n",
     )
Ejemplo n.º 5
0
 def test_lrange(self):
     l = [b"one", b"two", b"three"]
     Entry.register_response("LRANGE list 0 -1", l)
     self.assertEqual(self.rclient.lrange("list", 0, -1), l)
     self.assertEqual(len(Mocket.request_list()), 1)
     self.assertEqual(
         Mocket.last_request().data,
         b"*4\r\n$6\r\nLRANGE\r\n$4\r\nlist\r\n$1\r\n0\r\n$2\r\n-1\r\n",
     )
Ejemplo n.º 6
0
 def test_incr(self):
     Entry.register_responses("INCRBY counter 1", (1, 2, 3))
     self.assertEqual(self.rclient.incr("counter"), 1)
     self.assertEqual(self.rclient.incr("counter"), 2)
     self.assertEqual(self.rclient.incr("counter"), 3)
     self.assertEqual(len(Mocket.request_list()), 3)
     self.assertEqual(
         Mocket.request_list()[0].data,
         b"*3\r\n$6\r\nINCRBY\r\n$7\r\ncounter\r\n$1\r\n1\r\n",
     )
     self.assertEqual(
         Mocket.request_list()[1].data,
         b"*3\r\n$6\r\nINCRBY\r\n$7\r\ncounter\r\n$1\r\n1\r\n",
     )
     self.assertEqual(
         Mocket.request_list()[2].data,
         b"*3\r\n$6\r\nINCRBY\r\n$7\r\ncounter\r\n$1\r\n1\r\n",
     )
Ejemplo n.º 7
0
 def test_makefile(self):
     addr = ("localhost", 80)
     Mocket.register(MocketEntry(addr, ["Show me.\r\n"]))
     with Mocketizer():
         _so = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         _so.connect(addr)
         fp = _so.makefile("rb")
         _so.sendall(encode_to_bytes("...\r\n"))
         self.assertEqual(fp.read().strip(), encode_to_bytes("Show me."))
         self.assertEqual(len(Mocket.request_list()), 1)
Ejemplo n.º 8
0
 def test_sendall_double(self):
     Entry.register(
         Entry.GET, "http://testme.org/", Response(status=404), Response()
     )
     self.assertRaises(HTTPError, urlopen, "http://testme.org/")
     response = urlopen("http://testme.org/")
     self.assertEqual(response.code, 200)
     response = urlopen("http://testme.org/")
     self.assertEqual(response.code, 200)
     self.assertEqual(len(Mocket.request_list()), 3)
Ejemplo n.º 9
0
 def test_err(self):
     Entry.register_response(
         "INCRBY counter one",
         ERROR("ERR value is not an integer or out of range"))
     self.assertRaises(redis.ResponseError, self.rclient.incr, "counter",
                       "one")
     self.assertEqual(len(Mocket.request_list()), 1)
     self.assertEqual(
         Mocket.last_request().data,
         b"*3\r\n$6\r\nINCRBY\r\n$7\r\ncounter\r\n$3\r\none\r\n",
     )
Ejemplo n.º 10
0
 def test_mockhttp_entry_collect_duplicates(self):
     Entry.single_register(
         Entry.POST, "http://testme.org/", status=200, match_querystring=False
     )
     requests.post(
         "http://testme.org/?foo=bar",
         data="{'foo': 'bar'}",
         headers={"content-type": "application/json"},
     )
     requests.post("http://testme.org/")
     self.assertEqual(len(Mocket.request_list()), 2)
     self.assertEqual(Mocket.last_request().path, "/")
Ejemplo n.º 11
0
 def test_sendall(self):
     with mock.patch("time.gmtime") as tt:
         tt.return_value = time.struct_time((2013, 4, 30, 10, 39, 21, 1, 120, 0))
         Entry.single_register(
             Entry.GET, "http://testme.org/get/p/?a=1&b=2", body="test_body"
         )
     resp = urlopen("http://testme.org/get/p/?b=2&a=1", timeout=10)
     self.assertEqual(resp.code, 200)
     self.assertEqual(resp.read(), b"test_body")
     self.assertEqualHeaders(
         dict(resp.headers),
         {
             "Status": "200",
             "Content-length": "9",
             "Server": "Python/Mocket",
             "Connection": "close",
             "Date": "Tue, 30 Apr 2013 10:39:21 GMT",
             "Content-type": "text/plain; charset=utf-8",
         },
     )
     self.assertEqual(len(Mocket.request_list()), 1)
Ejemplo n.º 12
0
 def test_lastrequest(self):
     self.assertEqual(Mocket.last_request(), None)
     Mocket.request_list().extend([1, 2, 3])
     self.assertEqual(Mocket.last_request(), 3)
Ejemplo n.º 13
0
 def test_reset(self):
     Mocket.request_list().extend([1, 2, 3])
     self.assertEqual(Mocket.request_list(), [1, 2, 3])
     Mocket.reset()
     self.assertEqual(Mocket.request_list(), [])
Ejemplo n.º 14
0
 def mocketize_teardown(self):
     self.assertEqual(len(Mocket.request_list()), 0)
Ejemplo n.º 15
0
 def __getattr__(self, name):
     if name == "last_request":
         return Mocket.last_request()
     if name == "latest_requests":
         return Mocket.request_list()
     return getattr(Entry, name)
Ejemplo n.º 16
0
 def mocketize_setup(self):
     Entry.register_response("FLUSHDB", OK)
     self.rclient.flushdb()
     self.assertEqual(len(Mocket.request_list()), 1)
     Mocket.reset()
Ejemplo n.º 17
0
 def test_has_requests(self):
     Mocket.request_list().extend([1, 2, 3])
     self.assertTrue(Mocket.has_requests())
     Mocket.reset()
     self.assertFalse(Mocket.has_requests())
Ejemplo n.º 18
0
 def test_remove_last(self):
     Mocket._requests = [1, 2]
     Mocket.remove_last_request()
     self.assertEqual(Mocket.request_list(), [1])
Ejemplo n.º 19
0
 def test_collect(self):
     request = "GET /get/p/?b=2&a=1 HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: testme.org\r\nConnection: close\r\nUser-Agent: Python-urllib/2.6\r\n\r\n"
     Mocket.collect(request)
     self.assertEqual(Mocket.last_request(), request)
     self.assertEqual(Mocket.request_list(), [request])
Ejemplo n.º 20
0
 def test_get(self):
     Entry.register_response("GET mocket", "is awesome!")
     self.assertEqual(self.rclient.get("mocket"), b"is awesome!")
     self.assertEqual(len(Mocket.request_list()), 1)
     self.assertEqual(Mocket.request_list()[0].data,
                      b"*2\r\n$3\r\nGET\r\n$6\r\nmocket\r\n")
Ejemplo n.º 21
0
 def test_remove_last_empty(self):
     Mocket.remove_last_request()
     self.assertEqual(Mocket.request_list(), [])
Ejemplo n.º 22
0
 def test_get_unicode(self):
     Entry.register_response("GET snowman", "\u2603")
     self.assertEqual(self.rclient.get("snowman"), b"\xe2\x98\x83")
     self.assertEqual(len(Mocket.request_list()), 1)
     self.assertEqual(Mocket.last_request().data,
                      b"*2\r\n$3\r\nGET\r\n$7\r\nsnowman\r\n")