summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <yuval@y3xz.com>2016-03-24 22:12:32 +0200
committerYuval Adam <yuval@y3xz.com>2016-03-24 22:12:32 +0200
commit0903f9b06475cdd95212acacd50748acf7106759 (patch)
tree186a8168bfe5485b5c5b6132cf03982c484581e8
parent50e344764e710a3fe0dce6a35fd165a234221a22 (diff)
Fix body and preamble properties
-rw-r--r--test.py14
-rw-r--r--viewstate.py15
2 files changed, 19 insertions, 10 deletions
diff --git a/test.py b/test.py
index 5ef245f..1f84bc2 100644
--- a/test.py
+++ b/test.py
@@ -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():