test_form-nav.py 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. from bottle import template
  2. from pytest import mark
  3. @mark.parametrize('expected, params', [
  4. ("""<form id="filter" method="get" action="products">
  5. <style>
  6. .button-resize { font-size: 70%; }
  7. @media screen and (min-width:35.5em){
  8. .button-resize { font-size: 75%; }
  9. }
  10. @media screen and (min-width:40em){
  11. .button-resize { font-size: 85%; }
  12. }
  13. @media screen and (min-width:64em){
  14. .button-resize { font-size: 100%; }
  15. }
  16. @media screen and (min-width:80em){
  17. .button-resize { font-size: 110%; }
  18. }
  19. </style>
  20. <div class="pure-g">
  21. <div class="pure-u-1">
  22. <div class="pure-button-group" role="nav" style="padding: 1em 0 0;">
  23. <button class="button-resize pure-button" type="submit" formaction="trend" > Trend </button>
  24. <button class="button-resize pure-button" type="submit" formaction="products" disabled="true"> Products </button>
  25. <button class="button-resize pure-button" type="submit" formaction="categories" > Categories </button>
  26. <button class="button-resize pure-button" type="submit" formaction="groups" > Groups </button>
  27. <button class="button-resize pure-button" type="submit" formaction="tags" > Tags </button>
  28. </div>
  29. </div>
  30. </div>
  31. <div class="pure-g">
  32. <div class="pure-u-1">
  33. <div class="pure-button-group" role="action" style="padding: 1em 0 0;">
  34. <button class="button-resize pure-button" type="submit"> Apply </button>
  35. <button form="clear" class="button-resize pure-button" type="submit"> Clear </button>
  36. <button form="reload" class="button-resize pure-button" type="submit"> Reload </button>
  37. </div>
  38. </div>
  39. </div>
  40. <div style="width: 0; height: 1em">
  41. <input type="text" name="product" value="!Chicken Stir Fry" hidden="true"/>
  42. <input type="text" name="category" value="!Beef" hidden="true"/>
  43. <input type="text" name="group" value="Fish, Meat, Eggs" hidden="true"/>
  44. <input type="text" name="tag" value="" hidden="true"/>
  45. <input type="text" name="unit" value="kg" hidden="true"/>
  46. </div>
  47. </form>
  48. <form id="clear" method="get" action="products">
  49. <div style="width: 0; height: 0">
  50. <input type="text" name="product" value="" hidden="true"/>
  51. <input type="text" name="category" value="" hidden="true"/>
  52. <input type="text" name="group" value="" hidden="true"/>
  53. <input type="text" name="tag" value="" hidden="true"/>
  54. <input type="text" name="unit" value="" hidden="true"/>
  55. </div>
  56. </form>
  57. <form id="reload" method="get" action="products">
  58. <div style="width: 0; height: 0">
  59. <input type="text" name="product" value="!Chicken Stir Fry" hidden="true"/>
  60. <input type="text" name="category" value="!Beef" hidden="true"/>
  61. <input type="text" name="group" value="Fish, Meat, Eggs" hidden="true"/>
  62. <input type="text" name="tag" value="" hidden="true"/>
  63. <input type="text" name="unit" value="kg" hidden="true"/>
  64. <input type="text" name="reload" value="true" hidden="true"/>
  65. </div>
  66. </form>""", {
  67. "method": "get", "action": "products", "params": [
  68. {'name': 'product', 'value': '!Chicken Stir Fry'},
  69. {'name': 'category', 'value': '!Beef'},
  70. {'name': 'group', 'value': 'Fish, Meat, Eggs'},
  71. {'name': 'tag'},
  72. {'name': 'unit', 'value': 'kg'},
  73. ]})
  74. ])
  75. def test_form_nav_render_exact(expected, params):
  76. assert template('form-nav', **params) == expected