code: def receives(self, *args, **kwargs):
          
          timeout = kwargs.pop('timeout', self._request_timeout)
          end = time.time() + timeout
          matcher = Matcher(*args, **kwargs)
          while not self._stopped:
              try:
                  # Short timeout so we notice if the server is stopped.
                  request = self._request_q.get(timeout=0.05)
              except Empty:
                  if time.time() > end:
                      raise AssertionError('expected to receive %r, got nothing'
                                           % matcher.prototype)
              else:
                  if matcher.matches(request):
                      return request
                  else:
                      raise AssertionError('expected to receive %r, got %r'
                                           % (matcher.prototype, request))
docs: Pop the next `Request` and assert it matches.
  
          Returns None if the server is stopped.
  
          Pass a `Request` or request pattern to specify what client request to
          expect. See the tutorial for examples. Pass ``timeout`` as a keyword
          argument to override this server's ``request_timeout``.