Files
ai-job-search/tests/test_salary_lookup.py
T
student-mayank 429e32f7c0 fix(salary): handle missing/null city & resolve custom baseline percentage bug (#98)
* fix: handle None value for city key in salary lookup

* fix: calculate correct percentage difference for non-100 baselines in salary lookup
2026-07-09 21:14:15 +02:00

86 lines
2.3 KiB
Python

import unittest
from salary_lookup import format_entry, search_company
class FormatEntryTests(unittest.TestCase):
def test_zero_count_is_displayed_as_zero(self):
entry = {
"company": "Example Corp",
"city": "",
"categories": {
"public_data": {
"count": 0,
"index": 100.0,
},
},
}
rendered = format_entry(entry, {"index_baseline": 100, "index_label": "Index"})
self.assertRegex(rendered, r"Public Data\s+0\s+100\.0")
def test_text_index_does_not_crash(self):
entry = {
"company": "Example Corp",
"city": "",
"categories": {
"sample": {
"count": 3,
"index": "private",
},
},
}
rendered = format_entry(entry, {"index_baseline": 100, "index_label": "Index"})
self.assertIn("private", rendered)
def test_format_entry_with_zero_baseline(self):
entry = {
"company": "Example Corp",
"city": "",
"categories": {
"it": {
"count": None,
"index": 45000.0,
},
},
}
rendered = format_entry(entry, {"index_baseline": 0, "index_label": "Salary"})
self.assertIn("45000.0", rendered)
self.assertNotIn("%", rendered)
def test_format_entry_with_custom_baseline(self):
entry = {
"company": "Example Corp",
"city": "",
"categories": {
"it": {
"count": None,
"index": 45000.0,
},
},
}
rendered = format_entry(entry, {"index_baseline": 40000, "index_label": "Salary"})
self.assertIn("45000.0", rendered)
self.assertIn("+12.5%", rendered)
class SearchCompanyTests(unittest.TestCase):
def test_search_company_with_none_city(self):
data = {
"companies": [
{
"company": "Acme",
"city": None,
}
]
}
results = search_company(data, "Acme", city="Aarhus")
self.assertEqual(results, [])
if __name__ == "__main__":
unittest.main()