File size: 818 Bytes
a721dfa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from __future__ import annotations

import unittest

from pydantic import ValidationError

from backend.api_models import SwitchRequest, WatchlistRequest


class ApiModelsTests(unittest.TestCase):
    def test_switch_request_accepts_symbol_and_interval(self) -> None:
        model = SwitchRequest(symbol="BTCUSD", interval="1h")
        self.assertEqual(model.symbol, "BTCUSD")
        self.assertEqual(model.interval, "1h")

    def test_watchlist_request_rejects_empty_symbol_list(self) -> None:
        with self.assertRaises(ValidationError):
            WatchlistRequest(symbols=[])

    def test_watchlist_request_rejects_oversized_symbol_list(self) -> None:
        with self.assertRaises(ValidationError):
            WatchlistRequest(symbols=["BTCUSD"] * 51)


if __name__ == "__main__":
    unittest.main()