def setUp(self): self.bs_date = samwat(2073, 7, 28) self.ad_date = date(2016, 11, 13) self.bs_today = samwat.today() self.ad_today = date.today() if sys.version_info < (3, 0): # in python version less than 3 assertRaisesRegex is assertRaisesRegexp self.assertRaisesRegex = self.assertRaisesRegexp
def test_from_iso(self): self.assertEqual(samwat.from_iso("2073-07-28"), samwat(2073, 7, 28)) invalid_datestrs = [ "207307,28", "rubbish", ] for datestr in invalid_datestrs: with self.subTest(datestr=datestr): with self.assertRaisesRegex(ValueError, "Invalid datestr provided."): samwat.from_iso(datestr)
def test__sub__(self): ten_days_early_bs = samwat(2073, 7, 18) # test that we can subtract datetime.timedelta self.assertEqual(self.bs_date - timedelta(days=10), ten_days_early_bs) # test that we can subtract bikram.samwat self.assertEqual(self.bs_date - ten_days_early_bs, timedelta(days=10)) # test that we can also subtract datetime.date self.assertEqual(self.bs_date - date(2016, 11, 3), timedelta(days=10)) # test that exception is raised while trying to subtract something other than # datetime.timedelta, datetime.date and bikram.samwat _msg = ('Subtraction only supported for datetime.timedelta, ' 'datetime.date and bikram.samwat types, not') with self.assertRaisesRegex(TypeError, _msg): self.bs_date - 10
def calculate(vehicle_registration_type, vehicle, cubic_centimeter_capacity, valid_upto): dates = list((valid_upto.split('-'))) small_vehicle = ['CAR', 'JEEP', 'VAN', 'MICRO-BUS'] power_vehicle = [ 'DOZER', 'EXCAVATOR', 'LOADER', 'ROLLER', 'TIPPER', 'CRANE', 'MINI-TIPPER', 'TRACTOR', 'POWER-TILLER', 'MINI-TRUCK', 'MINI-BUS', 'BUS', 'TRUCK' ] vehicle = vehicle.upper() tax = int() if (int(dates[2]) == 2076): year = '_' + '2075' else: year = '_' + dates[2] if vehicle_registration_type == 'private': database_link = sqlite3.connect('private.db') elif vehicle_registration_type == 'public': database_link = sqlite3.connect('public.db') if vehicle == 'MOTORCYCLE': cursor = database_link.execute('SELECT CC_BEG, CC_END, ' + year + ' FROM MOTORCYCLE') for row in cursor: if cubic_centimeter_capacity >= row[ 0] and cubic_centimeter_capacity <= row[1]: tax = row[2] elif vehicle in small_vehicle: cursor = database_link.execute('SELECT CC_BEG, CC_END, ' + year + ' FROM SMALL_VEH') for row in cursor: if (row[0] <= cubic_centimeter_capacity and row[1] >= cubic_centimeter_capacity): tax = row[2] elif vehicle in power_vehicle: cursor = database_link.execute('SELECT TYPE, ' + year + ' FROM POWER_VEH') for row in cursor: if row[0] == vehicle: tax = row[1] temp = valid_upto valid_upto = samwat(int(dates[2]), int(dates[1]), int(dates[0])) current_date = samwat.from_ad(date.today()) validity = valid_upto + timedelta(days=365) validity = validity.as_tuple() validity = str(validity[2]) + '-' + str(validity[1]) + '-' + str( validity[0]) number_of_days_left = current_date - valid_upto number_of_days_left = number_of_days_left.days if number_of_days_left <= 0: return 0, temp penalty_free_date = valid_upto.as_tuple() if (penalty_free_date[1] + 3 > 12): penalty_free_date = samwat(penalty_free_date[0] + 1, 1, 1) penalty_free_date = penalty_free_date - timedelta(days=1) else: penalty_free_date = samwat(penalty_free_date[0], penalty_free_date[1] + 3, penalty_free_date[2]) if (penalty_free_date >= current_date): return tax, validity days_exceeded = current_date - penalty_free_date days_exceeded = days_exceeded.days if days_exceeded <= 30: tax = tax + (0.05 * tax) elif days_exceeded <= 45: tax = tax + (0.1 * tax) else: current_date = current_date.as_tuple() if current_date[0] == int(dates[2]): tax = tax + (0.2 * tax) else: tax = tax + (0.32 * tax) return tax, validity
def test__iadd__(self): some_bs_date = samwat(2052, 6, 1) some_bs_date += timedelta(days=5) self.assertEqual(some_bs_date, samwat(2052, 6, 6)) self.assertEqual(some_bs_date.ad, date(1995, 9, 22))
def test_replace(self): self.assertEqual(self.bs_date.replace(2025, 11, 4), samwat(2025, 11, 4)) self.assertEqual(self.bs_date.replace(2026, 8, 4), samwat(2026, 8, 4))
def test_convert_bs_to_ad(self): self.assertEqual(convert_bs_to_ad(samwat(2072, 7, 5)), date(2015, 10, 22)) self.assertEqual(convert_bs_to_ad(samwat(2071, 6, 14)), date(2014, 9, 30))
def test__lt__(self): self.assertTrue(samwat(2073, 3, 4) < samwat(2073, 3, 5)) self.assertTrue(samwat(2073, 7, 27) < date(2016, 11, 13)) with self.assertRaisesRegex(TypeError, 'Cannot compare bikram.samwat'): self.bs_date < 10
def test__eq__(self): self.assertTrue(samwat(2073, 3, 4) == samwat(2073, 3, 4)) self.assertTrue(samwat(2073, 7, 27) == date(2016, 11, 12)) with self.assertRaisesRegex(TypeError, 'Cannot compare bikram.samwat'): self.bs_date == 10
def test__isub__(self): some_bs_date = samwat(2052, 6, 6) some_bs_date -= timedelta(days=5) self.assertEqual(some_bs_date, samwat(2052, 6, 1)) self.assertEqual(some_bs_date.ad, date(1995, 9, 17))
def setUp(self): self.bs_date = samwat(2076, 1, 4)