예제 #1
0
 def test062_asset_rate_delete(self):
     finac.asset_set_rate('EUR', 'USD', value=1.8, date='2018-12-01')
     self.assertEqual(finac.asset_rate('EUR', 'USD', date='2019-01-05'),
                      1.5)
     time.sleep(0.6)
     finac.asset_delete_rate('EUR', 'USD', date='2019-01-01')
     self.assertEqual(finac.asset_rate('EUR', 'USD', date='2019-01-05'),
                      1.8)
예제 #2
0
 def test081_test_cross(self):
     finac.asset_create('NZD')
     finac.asset_create('BZD')
     finac.asset_create('FKP')
     finac.asset_create('KPW')
     finac.asset_set_rate('NZD/BZD', value=2)
     finac.asset_set_rate('BZD/FKP', value=2.5)
     finac.asset_set_rate('FKP/KPW', value=3)
     self.assertEqual(finac.asset_rate('NZD/KPW'), 15)
     self.assertEqual(round(finac.asset_rate('KPW/NZD') * 100, 2), 6.67)
예제 #3
0
 def test061_asset_rate_easyget(self):
     finac.core.config_set('rate_allow_reverse', False)
     try:
         finac.asset_rate('USD', 'EUR', date='2019-01-05')
         raise RuntimeError('Rate not found not raised')
     except:
         pass
     finac.core.config_set('rate_allow_reverse', True)
     self.assertEqual(finac.asset_rate('USD', 'EUR', date='2019-01-05'),
                      1 / 1.5)
     self.assertEqual(finac.asset_rate('USD', 'EUR'), 1 / 2)
예제 #4
0
 def test060_asset_rate_set(self):
     finac.asset_create('AUD')
     finac.asset_set_rate('EUR', 'USD', '1,5', date='2019-01-01')
     finac.asset_set_rate('EUR/USD', value=2)
     finac.asset_set_rate('AUD/USD', value='0,69')
     try:
         print(finac.asset_rate('EUR', 'USD', date='2018-01-01'))
         raise RuntimeError('Rate not found not raised')
     except finac.RateNotFound:
         pass
     self.assertEqual(finac.asset_rate('EUR', 'USD', date='2019-01-05'),
                      1.5)
     self.assertEqual(finac.asset_rate('EUR', 'USD'), 2)
예제 #5
0
 def test901_rate_list_cache(self):
     if config.remote:
         return
     finac.asset_create('CA1')
     finac.asset_create('CA2')
     finac.asset_create('CA3')
     finac.asset_set_rate('CA1/CA2', 2, date='2019-05-05 11:00:00')
     finac.asset_set_rate('CA2/CA3', 4, date='2019-05-05 11:00:00')
     finac.core._CacheRateListKeyError = RuntimeError
     try:
         self.assertEqual(
             finac.asset_rate('CA1/CA3', date='2019-05-05 11:00:00'), 8)
         raise RuntimeError('Cache key error not raised')
     except KeyError:
         pass
     finac.core._CacheRateListKeyError = KeyError
     self.assertEqual(
         finac.asset_rate('CA1/CA3', date='2019-05-05 11:00:00'), 8)
     finac.core._CacheRateListKeyError = RuntimeError
     self.assertEqual(
         finac.asset_rate('CA1/CA3', date='2019-05-05 11:00:00'), 8)
     try:
         self.assertEqual(
             finac.asset_rate('CA1/CA3', date='2019-05-05 11:00:01'), 8)
         raise RuntimeError('Cache key error not raised')
     except KeyError:
         pass
     finac.asset_set_rate('CA1/CA2', 2)
     finac.asset_set_rate('CA2/CA3', 3)
     try:
         self.assertEqual(finac.asset_rate('CA1/CA3'), 6)
         raise RuntimeError('Cache key error not raised')
     except KeyError:
         pass
     finac.core._CacheRateListKeyError = KeyError
     self.assertEqual(finac.asset_rate('CA1/CA3'), 6)
     finac.core._CacheRateListKeyError = RuntimeError
     time.sleep(0.1)
     self.assertEqual(finac.asset_rate('CA1/CA3'), 6)
     finac.core._CacheRateListKeyError = KeyError
예제 #6
0
 def test901_rate_cache(self):
     if config.remote:
         return
     from cachetools import TTLCache
     finac.core._cache.rate = TTLCache(maxsize=1024, ttl=10)
     finac.core.config.rate_cache_ttl = 10
     finac.core._CacheRateKeyError = RuntimeError
     finac.asset_set_rate('EUR/USD', 1.99, date='2019-05-05 11:00:00')
     try:
         self.assertEqual(
             finac.asset_rate('EUR/USD', date='2019-05-05 11:00:00'), 1.99)
         raise RuntimeError('Cache key error not raised')
     except KeyError:
         pass
     finac.core._CacheRateKeyError = KeyError
     self.assertEqual(
         finac.asset_rate('EUR/USD', date='2019-05-05 11:00:00'), 1.99)
     finac.core._CacheRateKeyError = RuntimeError
     self.assertEqual(
         finac.asset_rate('EUR/USD', date='2019-05-05 11:00:00'), 1.99)
     try:
         self.assertEqual(
             finac.asset_rate('EUR/USD', date='2019-05-05 11:00:01'), 1.99)
         raise RuntimeError('Cache key error not raised')
     except KeyError:
         pass
     finac.asset_create('CAT')
     finac.asset_set_rate('EUR/CAT', 1.11)
     try:
         self.assertEqual(finac.asset_rate('EUR/CAT'), 1.11)
         raise RuntimeError('Cache key error not raised')
     except KeyError:
         pass
     finac.core._CacheRateKeyError = KeyError
     self.assertEqual(finac.asset_rate('EUR/CAT'), 1.11)
     finac.core._CacheRateKeyError = RuntimeError
     time.sleep(0.1)
     self.assertEqual(finac.asset_rate('EUR/CAT'), 1.11)
     finac.core._CacheRateKeyError = KeyError
예제 #7
0
 def test098_asset_update(self):
     finac.asset_update('eur', code='ouR')
     self.assertEqual(finac.asset_rate('OUR/USD'), 1.1)
     finac.asset_update('our', code='eur')