def HasRequestProperties(method, url, query=None):
if query is None:<EOL><INDENT>query = {}<EOL><DEDENT>return MatchesStructure(<EOL>method=Equals(method.encode('<STR_LIT:ascii>')),<EOL>path=Equals(url.encode('<STR_LIT:ascii>')),<EOL>uri=After(lambda u: urisplit(u).getquerydict(), Equals(query))<EOL>)<EOL>
Check if a HTTP request object has certain properties.

Parses the query dict from the request URI rather than using the request
"args" property as the args do not include query parameters that have no
value.

:param str method:
    The HTTP method.
:param str url:
    The HTTP URL, without any query parameters. Should already be percent
    encoded.
:param dict query:
    A dictionary of HTTP query parameters.