Compare commits
2 commits
59eec96236
...
8a293f3212
Author | SHA1 | Date | |
---|---|---|---|
8a293f3212 | |||
2274a79ebf |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -16,14 +16,7 @@
|
|||
<nav class="pdoc">
|
||||
<label id="navtoggle" for="togglestate" class="pdoc-button"><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke-linecap='round' stroke="currentColor" stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg></label>
|
||||
<input id="togglestate" type="checkbox" aria-hidden="true" tabindex="-1">
|
||||
<div> <a class="pdoc-button module-list-button" href="index.html">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-box-arrow-in-left" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M10 3.5a.5.5 0 0 0-.5-.5h-8a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 1 1 0v2A1.5 1.5 0 0 1 9.5 14h-8A1.5 1.5 0 0 1 0 12.5v-9A1.5 1.5 0 0 1 1.5 2h8A1.5 1.5 0 0 1 11 3.5v2a.5.5 0 0 1-1 0v-2z"/>
|
||||
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
|
||||
</svg>
|
||||
Module Index
|
||||
</a>
|
||||
|
||||
<div>
|
||||
|
||||
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
||||
pattern=".+" required>
|
||||
|
|
|
@ -119,54 +119,60 @@
|
|||
</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="k">def</span> <span class="nf">log_request</span><span class="p">(</span><span class="n">addr</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">int</span><span class="p">],</span> <span class="n">req</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">dict</span><span class="p">]):</span>
|
||||
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a><span class="w"> </span><span class="sd">"""</span>
|
||||
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="sd"> Logs a request message to stdout, with a timestamp and an address (host:port).</span>
|
||||
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="sd"> </span>
|
||||
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="sd"> Output is: `timestamp - host:port - message`.</span>
|
||||
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="sd"> </span>
|
||||
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="sd"> - addr: tuple[str, int]</span>
|
||||
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="sd"> The address to print, as a tuple (host, port)</span>
|
||||
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> - req: dict[str, dict]</span>
|
||||
</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="sd"> The request to print.</span>
|
||||
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="sd"> """</span>
|
||||
</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="k">assert</span> <span class="s1">'head'</span> <span class="ow">in</span> <span class="n">req</span> \
|
||||
</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="ow">and</span> <span class="s1">'verb'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">'resource'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span>
|
||||
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a>
|
||||
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="n">verb</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'verb'</span><span class="p">]</span>
|
||||
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'resource'</span><span class="p">]</span>
|
||||
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">verb</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">res</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a>
|
||||
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="k">if</span> <span class="s1">'params'</span> <span class="ow">in</span> <span class="n">req</span> <span class="ow">and</span> <span class="s1">'User-Agent'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">]:</span>
|
||||
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">msg</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" - </span><span class="si">{</span><span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'User-Agent'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="sd"> If the User-Agent header is passed, its value is appended at the end.</span>
|
||||
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="sd"> </span>
|
||||
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="sd"> Output is: `timestamp - host:port - verb resource`.</span>
|
||||
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a>
|
||||
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="sd"> Output with User-Agent is: `timestamp - host:port - verb resource - user_agent`.</span>
|
||||
</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a>
|
||||
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="sd"> - addr: tuple[str, int]</span>
|
||||
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="sd"> The address to print, as a tuple (host, port)</span>
|
||||
</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="sd"> - req: dict[str, dict]</span>
|
||||
</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> The request to print.</span>
|
||||
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="sd"> """</span>
|
||||
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">assert</span> <span class="s1">'head'</span> <span class="ow">in</span> <span class="n">req</span> \
|
||||
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="ow">and</span> <span class="s1">'verb'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">'resource'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span>
|
||||
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a>
|
||||
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">verb</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'verb'</span><span class="p">]</span>
|
||||
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'resource'</span><span class="p">]</span>
|
||||
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">verb</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">res</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a>
|
||||
</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">log_address</span><span class="p">(</span><span class="n">addr</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a>
|
||||
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="k">def</span> <span class="nf">log_reply</span><span class="p">(</span><span class="n">addr</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">int</span><span class="p">],</span> <span class="n">req</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">dict</span><span class="p">],</span> <span class="n">code</span><span class="p">:</span> <span class="nb">int</span><span class="p">):</span>
|
||||
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a><span class="w"> </span><span class="sd">"""</span>
|
||||
</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a><span class="sd"> Logs an HTTP reply to stdout, with timestamp, address (host:port), code, UA.</span>
|
||||
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a><span class="sd"> </span>
|
||||
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a><span class="sd"> Output is: `timestamp - host:port - HTTP-verb HTTP-resource - code - message`.</span>
|
||||
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a><span class="sd"> </span>
|
||||
</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="sd"> - addr: tuple[str, int]</span>
|
||||
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="sd"> The address to print, as a tuple (host, port)</span>
|
||||
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a><span class="sd"> - req: dict[str, dict]</span>
|
||||
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="sd"> The request to print.</span>
|
||||
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a><span class="sd"> - code: int</span>
|
||||
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="sd"> The replied code to print.</span>
|
||||
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="sd"> """</span>
|
||||
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">assert</span> <span class="s1">'head'</span> <span class="ow">in</span> <span class="n">req</span> \
|
||||
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="ow">and</span> <span class="s1">'verb'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">'resource'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span>
|
||||
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a>
|
||||
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">verb</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'verb'</span><span class="p">]</span>
|
||||
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'resource'</span><span class="p">]</span>
|
||||
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">verb</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">res</span><span class="si">}</span><span class="s2"> - </span><span class="si">{</span><span class="n">code</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a>
|
||||
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">if</span> <span class="s1">'params'</span> <span class="ow">in</span> <span class="n">req</span> <span class="ow">and</span> <span class="s1">'User-Agent'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">]:</span>
|
||||
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">msg</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" - </span><span class="si">{</span><span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'User-Agent'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a>
|
||||
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="n">log_address</span><span class="p">(</span><span class="n">addr</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="k">if</span> <span class="s1">'params'</span> <span class="ow">in</span> <span class="n">req</span> <span class="ow">and</span> <span class="s1">'User-Agent'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">]:</span>
|
||||
</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">msg</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" - </span><span class="si">{</span><span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'User-Agent'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a>
|
||||
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">log_address</span><span class="p">(</span><span class="n">addr</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a>
|
||||
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a><span class="k">def</span> <span class="nf">log_reply</span><span class="p">(</span><span class="n">addr</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">int</span><span class="p">],</span> <span class="n">req</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">dict</span><span class="p">],</span> <span class="n">code</span><span class="p">:</span> <span class="nb">int</span><span class="p">):</span>
|
||||
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a><span class="w"> </span><span class="sd">"""</span>
|
||||
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a><span class="sd"> Logs an HTTP reply to stdout, with timestamp, address (host:port), code.</span>
|
||||
</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="sd"> If the User-Agent header is passed, its value is appended at the end.</span>
|
||||
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="sd"> </span>
|
||||
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="sd"> Output is: `timestamp - host:port - HTTP-verb HTTP-resource - code`.</span>
|
||||
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a>
|
||||
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a><span class="sd"> Output with User-Agent is: `timestamp - host:port - HTTP-verb HTTP-resource - code - user_agent`.</span>
|
||||
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a>
|
||||
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="sd"> - addr: tuple[str, int]</span>
|
||||
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a><span class="sd"> The address to print, as a tuple (host, port)</span>
|
||||
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a><span class="sd"> - req: dict[str, dict]</span>
|
||||
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a><span class="sd"> The request to print.</span>
|
||||
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a><span class="sd"> - code: int</span>
|
||||
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a><span class="sd"> The replied code to print.</span>
|
||||
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a><span class="sd"> """</span>
|
||||
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="k">assert</span> <span class="s1">'head'</span> <span class="ow">in</span> <span class="n">req</span> \
|
||||
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="ow">and</span> <span class="s1">'verb'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">'resource'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span>
|
||||
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a>
|
||||
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">verb</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'verb'</span><span class="p">]</span>
|
||||
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'resource'</span><span class="p">]</span>
|
||||
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">verb</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">res</span><span class="si">}</span><span class="s2"> - </span><span class="si">{</span><span class="n">code</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a>
|
||||
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">if</span> <span class="s1">'params'</span> <span class="ow">in</span> <span class="n">req</span> <span class="ow">and</span> <span class="s1">'User-Agent'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">]:</span>
|
||||
</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="n">msg</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" - </span><span class="si">{</span><span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'User-Agent'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a>
|
||||
</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="n">log_address</span><span class="p">(</span><span class="n">addr</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</span></pre></div>
|
||||
|
||||
|
||||
|
@ -271,33 +277,39 @@ The message string to print.</li>
|
|||
<div class="pdoc-code codehilite"><pre><span></span><span id="log_request-51"><a href="#log_request-51"><span class="linenos">51</span></a><span class="k">def</span> <span class="nf">log_request</span><span class="p">(</span><span class="n">addr</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">int</span><span class="p">],</span> <span class="n">req</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">dict</span><span class="p">]):</span>
|
||||
</span><span id="log_request-52"><a href="#log_request-52"><span class="linenos">52</span></a><span class="w"> </span><span class="sd">"""</span>
|
||||
</span><span id="log_request-53"><a href="#log_request-53"><span class="linenos">53</span></a><span class="sd"> Logs a request message to stdout, with a timestamp and an address (host:port).</span>
|
||||
</span><span id="log_request-54"><a href="#log_request-54"><span class="linenos">54</span></a><span class="sd"> </span>
|
||||
</span><span id="log_request-55"><a href="#log_request-55"><span class="linenos">55</span></a><span class="sd"> Output is: `timestamp - host:port - message`.</span>
|
||||
</span><span id="log_request-56"><a href="#log_request-56"><span class="linenos">56</span></a><span class="sd"> </span>
|
||||
</span><span id="log_request-57"><a href="#log_request-57"><span class="linenos">57</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="log_request-58"><a href="#log_request-58"><span class="linenos">58</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="log_request-59"><a href="#log_request-59"><span class="linenos">59</span></a><span class="sd"> - addr: tuple[str, int]</span>
|
||||
</span><span id="log_request-60"><a href="#log_request-60"><span class="linenos">60</span></a><span class="sd"> The address to print, as a tuple (host, port)</span>
|
||||
</span><span id="log_request-61"><a href="#log_request-61"><span class="linenos">61</span></a><span class="sd"> - req: dict[str, dict]</span>
|
||||
</span><span id="log_request-62"><a href="#log_request-62"><span class="linenos">62</span></a><span class="sd"> The request to print.</span>
|
||||
</span><span id="log_request-63"><a href="#log_request-63"><span class="linenos">63</span></a><span class="sd"> """</span>
|
||||
</span><span id="log_request-64"><a href="#log_request-64"><span class="linenos">64</span></a> <span class="k">assert</span> <span class="s1">'head'</span> <span class="ow">in</span> <span class="n">req</span> \
|
||||
</span><span id="log_request-65"><a href="#log_request-65"><span class="linenos">65</span></a> <span class="ow">and</span> <span class="s1">'verb'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">'resource'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span>
|
||||
</span><span id="log_request-66"><a href="#log_request-66"><span class="linenos">66</span></a>
|
||||
</span><span id="log_request-67"><a href="#log_request-67"><span class="linenos">67</span></a> <span class="n">verb</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'verb'</span><span class="p">]</span>
|
||||
</span><span id="log_request-68"><a href="#log_request-68"><span class="linenos">68</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'resource'</span><span class="p">]</span>
|
||||
</span><span id="log_request-69"><a href="#log_request-69"><span class="linenos">69</span></a> <span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">verb</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">res</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="log_request-70"><a href="#log_request-70"><span class="linenos">70</span></a>
|
||||
</span><span id="log_request-71"><a href="#log_request-71"><span class="linenos">71</span></a> <span class="k">if</span> <span class="s1">'params'</span> <span class="ow">in</span> <span class="n">req</span> <span class="ow">and</span> <span class="s1">'User-Agent'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">]:</span>
|
||||
</span><span id="log_request-72"><a href="#log_request-72"><span class="linenos">72</span></a> <span class="n">msg</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" - </span><span class="si">{</span><span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'User-Agent'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="log_request-54"><a href="#log_request-54"><span class="linenos">54</span></a><span class="sd"> If the User-Agent header is passed, its value is appended at the end.</span>
|
||||
</span><span id="log_request-55"><a href="#log_request-55"><span class="linenos">55</span></a><span class="sd"> </span>
|
||||
</span><span id="log_request-56"><a href="#log_request-56"><span class="linenos">56</span></a><span class="sd"> Output is: `timestamp - host:port - verb resource`.</span>
|
||||
</span><span id="log_request-57"><a href="#log_request-57"><span class="linenos">57</span></a>
|
||||
</span><span id="log_request-58"><a href="#log_request-58"><span class="linenos">58</span></a><span class="sd"> Output with User-Agent is: `timestamp - host:port - verb resource - user_agent`.</span>
|
||||
</span><span id="log_request-59"><a href="#log_request-59"><span class="linenos">59</span></a>
|
||||
</span><span id="log_request-60"><a href="#log_request-60"><span class="linenos">60</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="log_request-61"><a href="#log_request-61"><span class="linenos">61</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="log_request-62"><a href="#log_request-62"><span class="linenos">62</span></a><span class="sd"> - addr: tuple[str, int]</span>
|
||||
</span><span id="log_request-63"><a href="#log_request-63"><span class="linenos">63</span></a><span class="sd"> The address to print, as a tuple (host, port)</span>
|
||||
</span><span id="log_request-64"><a href="#log_request-64"><span class="linenos">64</span></a><span class="sd"> - req: dict[str, dict]</span>
|
||||
</span><span id="log_request-65"><a href="#log_request-65"><span class="linenos">65</span></a><span class="sd"> The request to print.</span>
|
||||
</span><span id="log_request-66"><a href="#log_request-66"><span class="linenos">66</span></a><span class="sd"> """</span>
|
||||
</span><span id="log_request-67"><a href="#log_request-67"><span class="linenos">67</span></a> <span class="k">assert</span> <span class="s1">'head'</span> <span class="ow">in</span> <span class="n">req</span> \
|
||||
</span><span id="log_request-68"><a href="#log_request-68"><span class="linenos">68</span></a> <span class="ow">and</span> <span class="s1">'verb'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">'resource'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span>
|
||||
</span><span id="log_request-69"><a href="#log_request-69"><span class="linenos">69</span></a>
|
||||
</span><span id="log_request-70"><a href="#log_request-70"><span class="linenos">70</span></a> <span class="n">verb</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'verb'</span><span class="p">]</span>
|
||||
</span><span id="log_request-71"><a href="#log_request-71"><span class="linenos">71</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'resource'</span><span class="p">]</span>
|
||||
</span><span id="log_request-72"><a href="#log_request-72"><span class="linenos">72</span></a> <span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">verb</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">res</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="log_request-73"><a href="#log_request-73"><span class="linenos">73</span></a>
|
||||
</span><span id="log_request-74"><a href="#log_request-74"><span class="linenos">74</span></a> <span class="n">log_address</span><span class="p">(</span><span class="n">addr</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</span><span id="log_request-74"><a href="#log_request-74"><span class="linenos">74</span></a> <span class="k">if</span> <span class="s1">'params'</span> <span class="ow">in</span> <span class="n">req</span> <span class="ow">and</span> <span class="s1">'User-Agent'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">]:</span>
|
||||
</span><span id="log_request-75"><a href="#log_request-75"><span class="linenos">75</span></a> <span class="n">msg</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" - </span><span class="si">{</span><span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'User-Agent'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="log_request-76"><a href="#log_request-76"><span class="linenos">76</span></a>
|
||||
</span><span id="log_request-77"><a href="#log_request-77"><span class="linenos">77</span></a> <span class="n">log_address</span><span class="p">(</span><span class="n">addr</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</span></pre></div>
|
||||
|
||||
|
||||
<div class="docstring"><p>Logs a request message to stdout, with a timestamp and an address (host:port).</p>
|
||||
<div class="docstring"><p>Logs a request message to stdout, with a timestamp and an address (host:port).
|
||||
If the User-Agent header is passed, its value is appended at the end.</p>
|
||||
|
||||
<p>Output is: <code>timestamp - host:port - message</code>.</p>
|
||||
<p>Output is: <code>timestamp - host:port - verb resource</code>.</p>
|
||||
|
||||
<p>Output with User-Agent is: <code>timestamp - host:port - verb resource - user_agent</code>.</p>
|
||||
|
||||
<h2 id="parameters">Parameters</h2>
|
||||
|
||||
|
@ -322,38 +334,44 @@ The request to print.</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#log_reply"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="log_reply-76"><a href="#log_reply-76"><span class="linenos"> 76</span></a><span class="k">def</span> <span class="nf">log_reply</span><span class="p">(</span><span class="n">addr</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">int</span><span class="p">],</span> <span class="n">req</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">dict</span><span class="p">],</span> <span class="n">code</span><span class="p">:</span> <span class="nb">int</span><span class="p">):</span>
|
||||
</span><span id="log_reply-77"><a href="#log_reply-77"><span class="linenos"> 77</span></a><span class="w"> </span><span class="sd">"""</span>
|
||||
</span><span id="log_reply-78"><a href="#log_reply-78"><span class="linenos"> 78</span></a><span class="sd"> Logs an HTTP reply to stdout, with timestamp, address (host:port), code, UA.</span>
|
||||
</span><span id="log_reply-79"><a href="#log_reply-79"><span class="linenos"> 79</span></a><span class="sd"> </span>
|
||||
</span><span id="log_reply-80"><a href="#log_reply-80"><span class="linenos"> 80</span></a><span class="sd"> Output is: `timestamp - host:port - HTTP-verb HTTP-resource - code - message`.</span>
|
||||
</span><span id="log_reply-81"><a href="#log_reply-81"><span class="linenos"> 81</span></a><span class="sd"> </span>
|
||||
</span><span id="log_reply-82"><a href="#log_reply-82"><span class="linenos"> 82</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="log_reply-83"><a href="#log_reply-83"><span class="linenos"> 83</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="log_reply-84"><a href="#log_reply-84"><span class="linenos"> 84</span></a><span class="sd"> - addr: tuple[str, int]</span>
|
||||
</span><span id="log_reply-85"><a href="#log_reply-85"><span class="linenos"> 85</span></a><span class="sd"> The address to print, as a tuple (host, port)</span>
|
||||
</span><span id="log_reply-86"><a href="#log_reply-86"><span class="linenos"> 86</span></a><span class="sd"> - req: dict[str, dict]</span>
|
||||
</span><span id="log_reply-87"><a href="#log_reply-87"><span class="linenos"> 87</span></a><span class="sd"> The request to print.</span>
|
||||
</span><span id="log_reply-88"><a href="#log_reply-88"><span class="linenos"> 88</span></a><span class="sd"> - code: int</span>
|
||||
</span><span id="log_reply-89"><a href="#log_reply-89"><span class="linenos"> 89</span></a><span class="sd"> The replied code to print.</span>
|
||||
</span><span id="log_reply-90"><a href="#log_reply-90"><span class="linenos"> 90</span></a><span class="sd"> """</span>
|
||||
</span><span id="log_reply-91"><a href="#log_reply-91"><span class="linenos"> 91</span></a> <span class="k">assert</span> <span class="s1">'head'</span> <span class="ow">in</span> <span class="n">req</span> \
|
||||
</span><span id="log_reply-92"><a href="#log_reply-92"><span class="linenos"> 92</span></a> <span class="ow">and</span> <span class="s1">'verb'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">'resource'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span>
|
||||
</span><span id="log_reply-93"><a href="#log_reply-93"><span class="linenos"> 93</span></a>
|
||||
</span><span id="log_reply-94"><a href="#log_reply-94"><span class="linenos"> 94</span></a> <span class="n">verb</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'verb'</span><span class="p">]</span>
|
||||
</span><span id="log_reply-95"><a href="#log_reply-95"><span class="linenos"> 95</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'resource'</span><span class="p">]</span>
|
||||
</span><span id="log_reply-96"><a href="#log_reply-96"><span class="linenos"> 96</span></a> <span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">verb</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">res</span><span class="si">}</span><span class="s2"> - </span><span class="si">{</span><span class="n">code</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="log_reply-97"><a href="#log_reply-97"><span class="linenos"> 97</span></a>
|
||||
</span><span id="log_reply-98"><a href="#log_reply-98"><span class="linenos"> 98</span></a> <span class="k">if</span> <span class="s1">'params'</span> <span class="ow">in</span> <span class="n">req</span> <span class="ow">and</span> <span class="s1">'User-Agent'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">]:</span>
|
||||
</span><span id="log_reply-99"><a href="#log_reply-99"><span class="linenos"> 99</span></a> <span class="n">msg</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" - </span><span class="si">{</span><span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'User-Agent'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="log_reply-100"><a href="#log_reply-100"><span class="linenos">100</span></a>
|
||||
</span><span id="log_reply-101"><a href="#log_reply-101"><span class="linenos">101</span></a> <span class="n">log_address</span><span class="p">(</span><span class="n">addr</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="log_reply-79"><a href="#log_reply-79"><span class="linenos"> 79</span></a><span class="k">def</span> <span class="nf">log_reply</span><span class="p">(</span><span class="n">addr</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">int</span><span class="p">],</span> <span class="n">req</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">dict</span><span class="p">],</span> <span class="n">code</span><span class="p">:</span> <span class="nb">int</span><span class="p">):</span>
|
||||
</span><span id="log_reply-80"><a href="#log_reply-80"><span class="linenos"> 80</span></a><span class="w"> </span><span class="sd">"""</span>
|
||||
</span><span id="log_reply-81"><a href="#log_reply-81"><span class="linenos"> 81</span></a><span class="sd"> Logs an HTTP reply to stdout, with timestamp, address (host:port), code.</span>
|
||||
</span><span id="log_reply-82"><a href="#log_reply-82"><span class="linenos"> 82</span></a><span class="sd"> If the User-Agent header is passed, its value is appended at the end.</span>
|
||||
</span><span id="log_reply-83"><a href="#log_reply-83"><span class="linenos"> 83</span></a><span class="sd"> </span>
|
||||
</span><span id="log_reply-84"><a href="#log_reply-84"><span class="linenos"> 84</span></a><span class="sd"> Output is: `timestamp - host:port - HTTP-verb HTTP-resource - code`.</span>
|
||||
</span><span id="log_reply-85"><a href="#log_reply-85"><span class="linenos"> 85</span></a>
|
||||
</span><span id="log_reply-86"><a href="#log_reply-86"><span class="linenos"> 86</span></a><span class="sd"> Output with User-Agent is: `timestamp - host:port - HTTP-verb HTTP-resource - code - user_agent`.</span>
|
||||
</span><span id="log_reply-87"><a href="#log_reply-87"><span class="linenos"> 87</span></a>
|
||||
</span><span id="log_reply-88"><a href="#log_reply-88"><span class="linenos"> 88</span></a><span class="sd"> Parameters</span>
|
||||
</span><span id="log_reply-89"><a href="#log_reply-89"><span class="linenos"> 89</span></a><span class="sd"> ----------</span>
|
||||
</span><span id="log_reply-90"><a href="#log_reply-90"><span class="linenos"> 90</span></a><span class="sd"> - addr: tuple[str, int]</span>
|
||||
</span><span id="log_reply-91"><a href="#log_reply-91"><span class="linenos"> 91</span></a><span class="sd"> The address to print, as a tuple (host, port)</span>
|
||||
</span><span id="log_reply-92"><a href="#log_reply-92"><span class="linenos"> 92</span></a><span class="sd"> - req: dict[str, dict]</span>
|
||||
</span><span id="log_reply-93"><a href="#log_reply-93"><span class="linenos"> 93</span></a><span class="sd"> The request to print.</span>
|
||||
</span><span id="log_reply-94"><a href="#log_reply-94"><span class="linenos"> 94</span></a><span class="sd"> - code: int</span>
|
||||
</span><span id="log_reply-95"><a href="#log_reply-95"><span class="linenos"> 95</span></a><span class="sd"> The replied code to print.</span>
|
||||
</span><span id="log_reply-96"><a href="#log_reply-96"><span class="linenos"> 96</span></a><span class="sd"> """</span>
|
||||
</span><span id="log_reply-97"><a href="#log_reply-97"><span class="linenos"> 97</span></a> <span class="k">assert</span> <span class="s1">'head'</span> <span class="ow">in</span> <span class="n">req</span> \
|
||||
</span><span id="log_reply-98"><a href="#log_reply-98"><span class="linenos"> 98</span></a> <span class="ow">and</span> <span class="s1">'verb'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">'resource'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">]</span>
|
||||
</span><span id="log_reply-99"><a href="#log_reply-99"><span class="linenos"> 99</span></a>
|
||||
</span><span id="log_reply-100"><a href="#log_reply-100"><span class="linenos">100</span></a> <span class="n">verb</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'verb'</span><span class="p">]</span>
|
||||
</span><span id="log_reply-101"><a href="#log_reply-101"><span class="linenos">101</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">req</span><span class="p">[</span><span class="s1">'head'</span><span class="p">][</span><span class="s1">'resource'</span><span class="p">]</span>
|
||||
</span><span id="log_reply-102"><a href="#log_reply-102"><span class="linenos">102</span></a> <span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">verb</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">res</span><span class="si">}</span><span class="s2"> - </span><span class="si">{</span><span class="n">code</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="log_reply-103"><a href="#log_reply-103"><span class="linenos">103</span></a>
|
||||
</span><span id="log_reply-104"><a href="#log_reply-104"><span class="linenos">104</span></a> <span class="k">if</span> <span class="s1">'params'</span> <span class="ow">in</span> <span class="n">req</span> <span class="ow">and</span> <span class="s1">'User-Agent'</span> <span class="ow">in</span> <span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">]:</span>
|
||||
</span><span id="log_reply-105"><a href="#log_reply-105"><span class="linenos">105</span></a> <span class="n">msg</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" - </span><span class="si">{</span><span class="n">req</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'User-Agent'</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span>
|
||||
</span><span id="log_reply-106"><a href="#log_reply-106"><span class="linenos">106</span></a>
|
||||
</span><span id="log_reply-107"><a href="#log_reply-107"><span class="linenos">107</span></a> <span class="n">log_address</span><span class="p">(</span><span class="n">addr</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</span></pre></div>
|
||||
|
||||
|
||||
<div class="docstring"><p>Logs an HTTP reply to stdout, with timestamp, address (host:port), code, UA.</p>
|
||||
<div class="docstring"><p>Logs an HTTP reply to stdout, with timestamp, address (host:port), code.
|
||||
If the User-Agent header is passed, its value is appended at the end.</p>
|
||||
|
||||
<p>Output is: <code>timestamp - host:port - HTTP-verb HTTP-resource - code - message</code>.</p>
|
||||
<p>Output is: <code>timestamp - host:port - HTTP-verb HTTP-resource - code</code>.</p>
|
||||
|
||||
<p>Output with User-Agent is: <code>timestamp - host:port - HTTP-verb HTTP-resource - code - user_agent</code>.</p>
|
||||
|
||||
<h2 id="parameters">Parameters</h2>
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -50,9 +50,12 @@ def log_address(addr: tuple[str, int], msg: str):
|
|||
def log_request(addr: tuple[str, int], req: dict[str, dict]):
|
||||
"""
|
||||
Logs a request message to stdout, with a timestamp and an address (host:port).
|
||||
If the User-Agent header is passed, its value is appended at the end.
|
||||
|
||||
Output is: `timestamp - host:port - message`.
|
||||
|
||||
Output is: `timestamp - host:port - verb resource`.
|
||||
|
||||
Output with User-Agent is: `timestamp - host:port - verb resource - user_agent`.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
- addr: tuple[str, int]
|
||||
|
@ -74,10 +77,13 @@ def log_request(addr: tuple[str, int], req: dict[str, dict]):
|
|||
|
||||
def log_reply(addr: tuple[str, int], req: dict[str, dict], code: int):
|
||||
"""
|
||||
Logs an HTTP reply to stdout, with timestamp, address (host:port), code, UA.
|
||||
|
||||
Output is: `timestamp - host:port - HTTP-verb HTTP-resource - code - message`.
|
||||
Logs an HTTP reply to stdout, with timestamp, address (host:port), code.
|
||||
If the User-Agent header is passed, its value is appended at the end.
|
||||
|
||||
Output is: `timestamp - host:port - HTTP-verb HTTP-resource - code`.
|
||||
|
||||
Output with User-Agent is: `timestamp - host:port - HTTP-verb HTTP-resource - code - user_agent`.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
- addr: tuple[str, int]
|
||||
|
|
|
@ -88,7 +88,6 @@ def test_get_resource_image():
|
|||
tests_path = _find_root()
|
||||
res_path = join(tests_path, 'resources', 'www', 'images', 'chaton.jpg')
|
||||
out = get_resource(res_path=res_path)
|
||||
print(out[0][:4])
|
||||
assert out[0][:4] == b'\xff\xd8\xff\xe0'
|
||||
|
||||
|
||||
|
|
|
@ -18,6 +18,9 @@ from myserver.http_request import parse_request, parse_request_params, \
|
|||
parse_request_head
|
||||
|
||||
def _compare_dicts(a: dict, b:dict, nested=False):
|
||||
"""
|
||||
Utility to compare two arrays, optionally with recursion.
|
||||
"""
|
||||
assert len(a) == len(b)
|
||||
for k in a.keys():
|
||||
assert k in b
|
||||
|
|
|
@ -14,18 +14,26 @@ Script to test the server.py module.
|
|||
|
||||
import pytest
|
||||
import requests
|
||||
from os.path import dirname, join
|
||||
from threading import Thread
|
||||
# import _thread, signal, sys
|
||||
|
||||
from myserver.server import serve #, handle_client, reply
|
||||
from myserver.server import serve, handle_client, prepare_resource, prepare_reply
|
||||
|
||||
HTTP_PORT = 12345
|
||||
""" The port to use during the tests, both for the server and client. """
|
||||
|
||||
|
||||
# The function is called automatically (autouse=True) ...
|
||||
def _find_root():
|
||||
"""
|
||||
A utility to return the path of the script for test resources.
|
||||
"""
|
||||
tests_dir = dirname(__file__)
|
||||
return tests_dir
|
||||
|
||||
# The function is called automatically (autouse=True) ... REVERSED
|
||||
# before and after all the tests in the file (scope="module")
|
||||
@pytest.fixture(autouse=True, scope="module")
|
||||
@pytest.fixture(autouse=False, scope="module")
|
||||
def start_server():
|
||||
"""
|
||||
Automatically starts and stops the server when running the tests.
|
||||
|
@ -44,7 +52,7 @@ def start_server():
|
|||
return
|
||||
|
||||
|
||||
def test_serve():
|
||||
def _test_serve():
|
||||
"""
|
||||
Tests the serve() function by using the requests module.
|
||||
|
||||
|
@ -54,3 +62,35 @@ def test_serve():
|
|||
print(f"Requesting url {url}.")
|
||||
req = requests.get( url )
|
||||
print(req)
|
||||
|
||||
|
||||
def test_handle_client():
|
||||
"""
|
||||
Tests the handle_client() function by using the requests module.
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
def test_prepare_resource():
|
||||
"""
|
||||
Tests the prepare_resource() function by using the requests module.
|
||||
"""
|
||||
# Identify the resources directory to serve.
|
||||
tests_path = _find_root()
|
||||
path = join(tests_path, 'resources', 'www')
|
||||
request = {
|
||||
'head': {
|
||||
'verb': 'GET',
|
||||
'resource': '/index.html'
|
||||
},
|
||||
'params': {
|
||||
'User-Agent': 'MyTest UserAgent v1.23'
|
||||
}
|
||||
}
|
||||
reply, code = prepare_resource(root=path, req=request)
|
||||
assert code == 200
|
||||
reply = reply.decode()
|
||||
print(reply)
|
||||
assert reply.startswith('HTTP/1.0 200 OK\nContent-Type: text/html\nDate: ')
|
||||
assert reply.endswith('See https://www.w3schools.com/html/html_basic.asp</p>\n\n</body>\n</html> ')
|
||||
|
|
Loading…
Reference in a new issue