def test_tax_calculation_first_rate_band_2(self):
     t = TaxYear(2018)
     self.assertEqual(0.19, t.get_total_tax_due(gross_income=11851))
 def test_tax_calculation_below_personal_allowance_2(self):
     t = TaxYear(2018)
     self.assertEqual(0, t.get_total_tax_due(11849))
 def test_tax_calculation_first_rate_band_1(self):
     t = TaxYear(2017)
     self.assertEqual(0.20, t.get_total_tax_due(gross_income=11501))
Exemplo n.º 4
0
 def test_total_taxable_income_income_over_personal_allowance_4(self):
     t = TaxYear(2018)
     self.assertEqual(31650.00, t.get_taxable_income(43500))
 def test_tax_calculation_below_personal_allowance_1(self):
     t = TaxYear(2017)
     self.assertEqual(0, t.get_total_tax_due(gross_income=11499))
Exemplo n.º 6
0
 def test_constructor_known_tax_year(self):
     self.assertIsInstance(TaxYear(2017), TaxYear)
Exemplo n.º 7
0
 def test_total_taxable_income_income_over_personal_allowance_3(self):
     t = TaxYear(2018)
     self.assertEqual(1.00, t.get_taxable_income(11851))
Exemplo n.º 8
0
 def test_total_taxable_income_zero_income(self):
     t = TaxYear(2017)
     self.assertEqual(0, t.get_taxable_income(0))
Exemplo n.º 9
0
 def test_total_taxable_income_income_equals_personal_allowance(self):
     t = TaxYear(2017)
     self.assertEqual(0, t.get_taxable_income(11500))
Exemplo n.º 10
0
 def test_personal_allowance_1(self):
     t = TaxYear(2017)
     self.assertEqual(11500.00, t.get_personal_allowance())
Exemplo n.º 11
0
 def test_personal_allowance_2(self):
     t = TaxYear(2018)
     self.assertEqual(11850.00, t.get_personal_allowance())
Exemplo n.º 12
0
 def test_tax_year_rates_2(self):
     t = TaxYear(2018)
     self.assertEqual(5, len(t.get_tax_rates()))
Exemplo n.º 13
0
 def test_tax_year_rates_1(self):
     t = TaxYear(2017)
     self.assertEqual(2, len(t.get_tax_rates()))
Exemplo n.º 14
0
 def test_tax_year_name(self):
     t = TaxYear(2017)
     self.assertEqual('2017-2018', t.get_name())
 def test_tax_calculation_second_rate_band_1(self):
     t = TaxYear(2018)
     self.assertEqual(14150, t.get_taxable_income(gross_income=26000))
     self.assertEqual(2829.59, t.get_total_tax_due(gross_income=26000))
Exemplo n.º 16
0
 def test_total_taxable_income_income_over_personal_allowance_2(self):
     t = TaxYear(2017)
     self.assertEqual(20001, t.get_taxable_income(31501))
Exemplo n.º 17
0
    arg_parser.add_argument('tax_year',
                            metavar="TAX_YEAR",
                            type=int,
                            help="Tax Yar to calculate Income Tax for")
    arg_parser.add_argument('gross_income',
                            metavar="GROSS_INCOME",
                            type=float,
                            help="Gross Income")
    args = arg_parser.parse_args()

    # Set the path to our data
    TaxYear.set_data_file(
        os.path.join(os.path.dirname(os.path.realpath(__file__)),
                     'data/rates.json'))

    # Create our TaxYear instance based on user input
    try:
        t = TaxYear(args.tax_year)
    except NoTaxYearSuppliedException:
        print("Not Tax Year was supplied - please try again.")
        exit(1)
    except UnknownTaxYearException:
        print("The supplied Tax Year '{}' is not known.".format(args.tax_year))
        exit(2)

    # Print out our calculation
    t.print_calculation(gross_income=args.gross_income)

    # Exit cleanly
    exit(0)
Exemplo n.º 18
0
 def test_constructor_no_tax_year(self):
     with self.assertRaises(NoTaxYearSuppliedException):
         TaxYear(year_key=None)