fix(dataflows): zero-pad HK ticker codes to Yahoo's 4-digit form (#1342)

- normalize_symbol maps 09992.HK to 9992.HK and 700.HK to 0700.HK (#957)
This commit is contained in:
Yijia-Xiao
2026-09-14 23:37:48 +00:00
parent d04693a208
commit 99313bfdbc
2 changed files with 26 additions and 1 deletions

View File

@@ -52,6 +52,23 @@ class TestNormalizeSymbol(unittest.TestCase):
def test_empty_input_passthrough(self):
self.assertEqual(normalize_symbol(""), "")
def test_hk_five_digit_code_repadded_to_four(self):
# HKEX lists up to 5-digit codes; Yahoo only accepts 4 (#957).
self.assertEqual(normalize_symbol("09992.HK"), "9992.HK")
self.assertEqual(normalize_symbol("00700.HK"), "0700.HK")
self.assertEqual(normalize_symbol("00001.HK"), "0001.HK")
def test_hk_four_digit_code_unchanged(self):
self.assertEqual(normalize_symbol("0700.HK"), "0700.HK")
self.assertEqual(normalize_symbol("9992.HK"), "9992.HK")
self.assertEqual(normalize_symbol("80737.HK"), "80737.HK")
def test_hk_short_code_padded_to_four(self):
self.assertEqual(normalize_symbol("700.HK"), "0700.HK")
def test_hk_code_case_insensitive_suffix(self):
self.assertEqual(normalize_symbol("09992.hk"), "9992.HK")
@pytest.mark.unit
class TestNoMarketDataError(unittest.TestCase):