Some testing

This commit is contained in:
Carlos Sanchez 2023-04-30 21:03:03 -04:00
parent 8b334c532e
commit ccd4e3232a
4 changed files with 66 additions and 0 deletions

View File

@ -4,12 +4,14 @@ import json
import logging
import contentapi
import toml
import myutils
CONFIGFILE="config.toml"
# The entire config object with all defaults
config = {
"api" : "https://oboy.smilebasicsource.com/api",
"expire_seconds" : 31536000, # 365 days in seconds, expiration for token
"tokenfile" : ".qcstoken"
}

10
myutils.py Normal file
View File

@ -0,0 +1,10 @@
# Merge the "new_values" dictionary recursively into the "base_values" dictionary,
# assigning where new_values is assigned but not fully overwriting nested dictionaries
# (hence recursive)
def merge_dictionary(new_values, base_values):
for key in new_values:
if key in base_values and isinstance(base_values[key], dict) and isinstance(new_values[key], dict):
merge_dictionary(new_values[key], base_values[key])
else:
base_values[key] = new_values[key]

7
test.bat Normal file
View File

@ -0,0 +1,7 @@
@echo off
REM Change python whatever
set pyexe=python34\python.exe
REM And now, run all the various tests we have
%pyexe% test_myutils.py

47
test_myutils.py Normal file
View File

@ -0,0 +1,47 @@
import unittest
import myutils
class TestMergeDictionary(unittest.TestCase):
def test_basic(self):
# Test case 1: simple merge
base = {'a': 1, 'b': 2}
new = {'b': 3, 'c': 4}
expected = {'a': 1, 'b': 3, 'c': 4}
myutils.merge_dictionary(new, base)
self.assertDictEqual(base, expected)
def test_nested(self):
# Test case 2: nested dictionary merge
base = {'a': {'b': 1, 'c': 2}, 'd': 3}
new = {'a': {'b': 4, 'e': 5}, 'f': 6}
expected = {'a': {'b': 4, 'c': 2, 'e': 5}, 'd': 3, 'f': 6}
myutils.merge_dictionary(new, base)
self.assertDictEqual(base, expected)
def test_emptybase(self):
# Test case 3: empty base dictionary
base = {}
new = {'a': 1, 'b': {'c': 2}}
expected = {'a': 1, 'b': {'c': 2}}
myutils.merge_dictionary(new, base)
self.assertDictEqual(base, expected)
def test_emptynew(self):
# Test case 4: empty new dictionary
base = {'a': 1, 'b': {'c': 2}}
new = {}
expected = {'a': 1, 'b': {'c': 2}}
myutils.merge_dictionary(new, base)
self.assertDictEqual(base, expected)
def test_nooverlap(self):
# Test case 5: no overlapping keys
base = {'a': 1}
new = {'b': 2}
expected = {'a': 1, 'b': 2}
myutils.merge_dictionary(new, base)
self.assertDictEqual(base, expected)
if __name__ == '__main__':
unittest.main()