Files
drunkendotfiles/vendor/ltp305-python/library/tests/test_features.py
dissimulo 030172f523 Initial backup of LTP-305G matrix clock setup on matrixpi
Captures everything needed to redeploy the two-display clock (hour on I2C
0x61, minute on I2C 0x63) on a fresh Pi:

- Both systemd units (matrix0x61.service, matrix0x63.service)
- Deployed Pimoroni script tree, including the local %I (12-hour) clock
  customization
- Vendored upstream sources (ltp305-python, breakout-garden) so restore is
  fully offline-capable
- Boot config snippet enabling I2C
- install.sh that wires it all back up idempotently
- Inventory doc cross-referencing every live-system path

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 01:32:39 -07:00

52 lines
1.8 KiB
Python

import mock
def test_set_pixel(smbus):
from ltp305 import LTP305, CMD_MATRIX_L, CMD_MATRIX_R
display = LTP305()
display.set_pixel(0, 0, 1)
display.set_pixel(5, 0, 1)
display.show()
smbus.SMBus(1).write_i2c_block_data.assert_has_calls((
mock.call(display.address, CMD_MATRIX_L, [1, 0, 0, 0, 0, 0, 0, 0]),
mock.call(display.address, CMD_MATRIX_R, [1, 0, 0, 0, 0, 0, 0, 0])
))
smbus.reset_mock()
display.set_pixel(0, 0, 0)
display.set_pixel(5, 0, 0)
display.show()
smbus.SMBus(1).write_i2c_block_data.assert_has_calls((
mock.call(display.address, CMD_MATRIX_L, [0, 0, 0, 0, 0, 0, 0, 0]),
mock.call(display.address, CMD_MATRIX_R, [0, 0, 0, 0, 0, 0, 0, 0])
))
def test_set_decimal(smbus):
from ltp305 import LTP305, CMD_MATRIX_L, CMD_MATRIX_R
display = LTP305()
display.set_decimal(left=True, right=True)
display.show()
smbus.SMBus(1).write_i2c_block_data.assert_has_calls((
mock.call(display.address, CMD_MATRIX_L, [0, 0, 0, 0, 0, 0, 0, 0b01000000]),
mock.call(display.address, CMD_MATRIX_R, [0, 0, 0, 0, 0, 0, 0b10000000, 0])
))
smbus.reset_mock()
display.set_decimal(left=False, right=False)
display.show()
smbus.SMBus(1).write_i2c_block_data.assert_has_calls((
mock.call(display.address, CMD_MATRIX_L, [0, 0, 0, 0, 0, 0, 0, 0]),
mock.call(display.address, CMD_MATRIX_R, [0, 0, 0, 0, 0, 0, 0, 0])
))
def test_set_character(smbus):
from ltp305 import LTP305, CMD_MATRIX_L, CMD_MATRIX_R
display = LTP305()
display.set_character(0, "A")
display.set_character(5, "B")
display.show()
smbus.SMBus(1).write_i2c_block_data.assert_has_calls((
mock.call(display.address, CMD_MATRIX_L, [126, 17, 17, 17, 126, 0, 0, 0]),
mock.call(display.address, CMD_MATRIX_R, [15, 17, 17, 15, 17, 17, 15, 0])
))