Test: adds support for testing i2c reads

This commit is contained in:
Simon Albinsson
2018-04-12 20:48:26 +00:00
parent afc8f18456
commit 3599889c8d
2 changed files with 23 additions and 3 deletions

View File

@@ -14,11 +14,22 @@ answers = {
(0x20, 0x15): add_crc([0x00,0x00])*2 ,#GET_BASELINE Invalid, should be more realistic data..
(0x20, 0x1e): None,#SET_BASELINE
}
class MockSMBus:
def __init__(s):
s.status=None
def i2c_rdwr(s,*msgs):
print(i2c_msg.read)
for m in msgs:
if m.flags == 1:
s._process_read(m)
else:
s._process_write(m)
def _process_read(s,msg):
if s.status == None:
raise AssertionError("tired to read before write")
for i in range(len(s.status)):
msg.buf[i]=chr(s.status[i])
def _process_write(s,msg):
s.status = answers[tuple(msg)]

View File

@@ -2,10 +2,19 @@ from .context import sgp30
from mock_smbus2 import MockSMBus
import unittest
class BasicTestSuite(unittest.TestCase):
class TestConstructor(unittest.TestCase):
"""Basic test cases."""
def setUp(self):
self.bus = MockSMBus()
def test_init(self):
b=sgp30.sgp30.Sgp30(self.bus)
b.init_sgp()
class SimpleTest(unittest.TestCase):
"""Basic test cases."""
def setUp(self):
self.bus = MockSMBus()
self.sgp=sgp30.sgp30.Sgp30(self.bus)
def test_read(self):
self.sgp.read_measurements()