Mercurial > ~darius > hgwebdir.cgi > epro
diff velib_python/test/test_settingsdevice.py @ 8:9c0435a617db
Import velib_python
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Sun, 05 Dec 2021 14:35:36 +1030 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/velib_python/test/test_settingsdevice.py Sun Dec 05 14:35:36 2021 +1030 @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Python +import logging +import os +import sqlite3 +import sys +import unittest +import subprocess +import time +import dbus +import threading +import fcntl +from dbus.mainloop.glib import DBusGMainLoop + +# Local +sys.path.insert(1, os.path.join(os.path.dirname(__file__), '../')) +from settingsdevice import SettingsDevice + +logger = logging.getLogger(__file__) + +class CreateSettingsTest(unittest.TestCase): + # The actual code calling VeDbusItemExport is in fixture_vedbus.py, which is ran as a subprocess. That + # code exports several values to the dbus. And then below test cases check if the exported values are + # what the should be, by using the bare dbus import objects and functions. + + def setUp(self): + pass + + def tearDown(self): + pass + + def test_adding_new_settings(self): + # to make sure that we make new settings, put something random in its name: + rnd = os.urandom(16).encode('hex') + + # ofcourse below could be simplified, for now just use all settings from the example: + settings = SettingsDevice( + bus=dbus.SessionBus() if 'DBUS_SESSION_BUS_ADDRESS' in os.environ else dbus.SystemBus(), + supportedSettings={ + 'loggingenabled': ['/Settings/' + rnd + '/Logscript/Enabled', 1, 0, 1], + 'proxyaddress': ['/Settings/' + rnd + '/Logscript/Http/Proxy', '', 0, 0], + 'proxyport': ['/Settings/' + rnd + '/Logscript/Http/ProxyPort', '', 0, 0], + 'backlogenabled': ['/Settings/' + rnd + '/Logscript/LogFlash/Enabled', 1, 0, 1], + 'backlogpath': ['/Settings/' + rnd + '/Logscript/LogFlash/Path', '', 0, 0], # When empty, default path will be used. + 'interval': ['/Settings/' + rnd + '/Logscript/LogInterval', 900, 0, 0], + 'url': ['/Settings/' + rnd + '/Logscript/Url', '', 0, 0] # When empty, the default url will be used. + }, + eventCallback=self.handle_changed_setting) + + """ + self.assertIs(type(v), dbus.Double) + self.assertEqual(self.dbusConn.get_object('com.victronenergy.dbusexample', '/Float').GetText(), '1.5') + """ + + def handle_changed_setting(setting, oldvalue, newvalue): + pass + +if __name__ == "__main__": + logging.basicConfig(stream=sys.stderr) + logging.getLogger('').setLevel(logging.WARNING) + DBusGMainLoop(set_as_default=True) + unittest.main()