diff options
| author | Yuval Adam <yuval@y3xz.com> | 2016-03-24 22:12:32 +0200 |
|---|---|---|
| committer | Yuval Adam <yuval@y3xz.com> | 2016-03-24 22:12:32 +0200 |
| commit | 0903f9b06475cdd95212acacd50748acf7106759 (patch) | |
| tree | 186a8168bfe5485b5c5b6132cf03982c484581e8 | |
| parent | 50e344764e710a3fe0dce6a35fd165a234221a22 (diff) | |
Fix body and preamble properties
| -rw-r--r-- | test.py | 14 | ||||
| -rw-r--r-- | viewstate.py | 15 |
2 files changed, 19 insertions, 10 deletions
@@ -13,14 +13,16 @@ class TestViewState(unittest.TestCase): vs = ViewState(f.read()) self.assertTrue(vs.is_valid()) - # def test_invalid_decode(self): - # with self.assertRaises(Exception): - # vs = ViewState(b'\x01\x02', decoded=True) - # vs.decode() + def test_invalid_decode(self): + with self.assertRaises(Exception): + vs = ViewState() + vs.raw = b'\x01\x02' + vs.decode() # def test_parse(self): - # vs = ViewState(b'\xff\x01\x67', decoded=True) - # assertTrue(vs.decode()) + # vs = ViewState() + # vs.raw = b'\xff\x01\x67' + # self.assertTrue(vs.decode()) if __name__ == '__main__': unittest.main() diff --git a/viewstate.py b/viewstate.py index b4c162c..01417a4 100644 --- a/viewstate.py +++ b/viewstate.py @@ -9,8 +9,11 @@ CONSTS = { '\x68': False } -def parse(): - pass +def parse(b): + print([hex(x) for x in b]) + if len(b) == 1 and b in CONSTS: + return CONSTS[b] + return None class ViewState(object): @@ -21,14 +24,18 @@ class ViewState(object): self.decoded = None @property - def body(self): + def preamble(self): return self.raw[:2] + @property + def body(self): + return self.raw[2:] + def is_valid(self): format_marker = b'\xff' version_marker = b'\x01' preamble = format_marker + version_marker - return self.body == preamble + return self.preamble == preamble def decode(self): if not self.is_valid(): |
