Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.60 KB | None | 0 0
  1. from cerberus import Validator
  2.  
  3. request = {
  4. "postamatId": "1995-001",
  5. "request": [
  6. {
  7. "method" :"status",
  8. "id": "131366596070781250",
  9. "params": {
  10. "cells": [
  11. {
  12. "doorState":0,
  13. "errorState":-1,
  14. "ledState":-1,
  15. "id":"C1N1",
  16. "lockState":0
  17. },
  18. {
  19. "doorState":0,
  20. "errorState":-1,
  21. "ledState":-1,
  22. "id":"C1N10",
  23. "lockState":0
  24. },
  25. {
  26. "doorState":1,
  27. "errorState":-1,
  28. "ledState":-1,
  29. "id":"C1N11",
  30. "lockState":1
  31. },
  32. {
  33. "doorState":0,
  34. "errorState":-1,
  35. "ledState":-1,
  36. "id":"C1N12",
  37. "lockState":0
  38. },
  39. {
  40. "doorState":0,
  41. "errorState":-1,
  42. "ledState":-1,
  43. "id":"C1N2",
  44. "lockState":0
  45. },
  46. {
  47. "doorState":0,
  48. "errorState":-1,
  49. "ledState":-1,
  50. "id":"C1N3",
  51. "lockState":0
  52. },
  53. {
  54. "doorState":0,
  55. "errorState":-1,
  56. "ledState":-1,
  57. "id":"C1N4",
  58. "lockState":0
  59. },
  60. {
  61. "doorState":0,
  62. "errorState":-1,
  63. "ledState":-1,
  64. "id":"C1N6",
  65. "lockState":0
  66. },
  67. {
  68. "doorState":0,
  69. "errorState":-1,
  70. "ledState":-1,
  71. "id":"C1N7",
  72. "lockState":0
  73. },
  74. {
  75. "doorState":0,
  76. "errorState":-1,
  77. "ledState":-1,
  78. "id":"C1N8",
  79. "lockState":0
  80. },
  81. {
  82. "doorState":1,
  83. "errorState":-1,
  84. "ledState":-1,
  85. "id":"C1N9",
  86. "lockState":1
  87. },
  88. {
  89. "doorState":0,
  90. "errorState":-1,
  91. "ledState":-1,
  92. "id":"C2N1",
  93. "lockState":0
  94. },
  95. {
  96. "doorState":0,
  97. "errorState":-1,
  98. "ledState":-1,
  99. "id":"C2N10",
  100. "lockState":0
  101. },
  102. {
  103. "doorState":1,
  104. "errorState":-1,
  105. "ledState":-1,
  106. "id":"C2N11",
  107. "lockState":1
  108. },
  109. {
  110. "doorState":0,
  111. "errorState":-1,
  112. "ledState":-1,
  113. "id":"C2N12",
  114. "lockState":0
  115. },
  116. {
  117. "doorState":0,
  118. "errorState":-1,
  119. "ledState":-1,
  120. "id":"C2N2",
  121. "lockState":0
  122. },
  123. {
  124. "doorState":0,
  125. "errorState":-1,
  126. "ledState":-1,
  127. "id":"C2N3",
  128. "lockState":0
  129. },
  130. {
  131. "doorState":0,
  132. "errorState":-1,
  133. "ledState":-1,
  134. "id":"C2N4",
  135. "lockState":0
  136. },
  137. {
  138. "doorState":0,
  139. "errorState":-1,
  140. "ledState":-1,
  141. "id":"C2N5",
  142. "lockState":0
  143. },
  144. {
  145. "doorState":0,
  146. "errorState":-1,
  147. "ledState":-1,
  148. "id":"C2N6",
  149. "lockState":0
  150. },
  151. {
  152. "doorState":0,
  153. "errorState":-1,
  154. "ledState":-1,
  155. "id":"C2N7",
  156. "lockState":0
  157. },
  158. {
  159. "doorState":0,
  160. "errorState":-1,
  161. "ledState":-1,
  162. "id":"C2N8",
  163. "lockState":0
  164. },
  165. {
  166. "doorState":1,
  167. "errorState":-1,
  168. "ledState":-1,
  169. "id":"C2N9",
  170. "lockState":1
  171. }
  172. ],
  173. "reader":{
  174. "state": 1
  175. },
  176. "module":"1.1.0.26",
  177. "controllers":[
  178. {
  179. "commandNumber":0,
  180. "techSectionUpper":0,
  181. "id":1,
  182. "state":1,
  183. "techSectionLower":0
  184. },
  185. {
  186. "commandNumber":0,
  187. "techSectionUpper":0,
  188. "id":2,
  189. "state":1,
  190. "techSectionLower":0
  191. }
  192. ],
  193. "terminal":{
  194. "balanceTimestamp":"2017-04-14T23:06:47+07:00",
  195. "balance":"1221472.95",
  196. "time":"2017-04-14T23:06:47+07:00",
  197. "interface":1,
  198. "cash":1
  199. }
  200. }
  201. }
  202. ],
  203. "terminalId":"9890364"
  204. }
  205.  
  206. schema = {
  207. 'terminalId': {
  208. 'type': 'string',
  209. 'required': True
  210. },
  211. 'postamatId': {
  212. 'type': 'string',
  213. 'required': True
  214. },
  215. 'request': {
  216. 'type': 'list',
  217. 'schema': {
  218. 'type': 'dict',
  219. 'allow_unknown': True,
  220. 'schema': {
  221. 'params': {
  222. 'type': 'dict',
  223. 'required': True,
  224. 'schema': {
  225. 'terminal': {
  226. 'type': 'dict',
  227. 'required': True,
  228. 'schema': {
  229. 'interface': {
  230. 'allowed': [1]
  231. },
  232. 'cash': {
  233. 'allowed': [1]
  234. }
  235. }
  236. },
  237. 'reader': {
  238. 'type': 'dict',
  239. 'schema': {
  240. 'state': {
  241. 'allowed': [1]
  242. }
  243. },
  244. 'required': True
  245. },
  246. 'controllers': {
  247. 'type': 'list',
  248. 'required': True
  249. },
  250. 'cells': {
  251. 'type': 'list',
  252. 'schema': {
  253. 'type': 'dict',
  254. 'schema': {
  255. 'errorState': {
  256. 'type': 'number',
  257. 'max': -1
  258. }
  259. },
  260. 'required': True
  261. }
  262. }
  263. }
  264. }
  265. }
  266. }
  267. }
  268. }
  269.  
  270. v = Validator(schema)
  271. print(v.validate(request))
  272. print(v.errors)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement