Example #1
0
def test_not_paying_a_salaried_employee_on_wrong_date():
    db = MemoryDB()
    t = AddSalariedEmployee("Bill", "Home", 1000.0, db)
    empId = t.execute()

    pay_date = datetime.date(2001, 11, 29)
    pt = Payday(pay_date, db)
    pt.execute()

    try:
        pt.get_paycheck(empId)
        raise "paycheck found on wrong date"
    except KeyError:
        pass
Example #2
0
def test_not_paying_a_salaried_employee_on_wrong_date():
    db = MemoryDB()
    t = AddSalariedEmployee("Bill", "Home", 1000.0, db)
    empId = t.execute()

    pay_date = datetime.date(2001, 11, 29)
    pt = Payday(pay_date, db)
    pt.execute()

    try:
        pt.get_paycheck(empId)
        raise "paycheck found on wrong date"
    except KeyError:
        pass
Example #3
0
def test_paying_a_single_salaried_employee():
    db = MemoryDB()
    t = AddSalariedEmployee("Bill", "Home", 1000.0, db)
    empId = t.execute()

    pay_date = datetime.date(2001, 11, 30)
    pt = Payday(pay_date, db)
    pt.execute()

    pc = pt.get_paycheck(empId)
    assert pc.pay_date == datetime.date(2001, 11, 30)
    assert pc.gross_pay == 1000.0
    assert pc.deductions == 0
    assert pc.net_pay == 1000.0
    assert pc.disposition == "Hold"
Example #4
0
def test_paying_a_single_salaried_employee():
    db = MemoryDB()
    t = AddSalariedEmployee("Bill", "Home", 1000.0, db)
    empId = t.execute()

    pay_date = datetime.date(2001, 11, 30)
    pt = Payday(pay_date, db)
    pt.execute()

    pc = pt.get_paycheck(empId)
    assert pc.pay_date == datetime.date(2001, 11, 30)
    assert pc.gross_pay == 1000.0
    assert pc.deductions == 0
    assert pc.net_pay == 1000.0
    assert pc.disposition == "Hold"
Example #5
0
def test_adding_an_employee_paid_by_salary():
    db = MemoryDB()
    t = AddSalariedEmployee("Jim", "Work", 2000.0, db)
    empId = t.execute()
    e = db.get_employee(empId)

    assert e.name, "Jim"
    assert e.address, "Work"

    pc = e.classification
    assert isinstance(pc, SalariedClassification)
    assert pc.salary == 2000.0

    ps = e.schedule
    assert isinstance(ps, MonthlySchedule)

    pm = e.method
    assert isinstance(pm, HoldMethod)
Example #6
0
    def test_add_salaried_employee(self):
        emp_id = EmpId(1)
        transaction = AddSalariedEmployee(emp_id,
                                          'Bob',
                                          'Home',
                                          salary=1000.00)
        transaction.execute()

        employee = g_payroll_database.get_employee(emp_id)
        self.assertEqual('Bob', employee.get_name())
        self.assertEqual('Home', employee.get_address())

        classification = employee.get_classification()
        self.assertEqual(1000.00, classification.get_salary())

        self.assertIsInstance(classification, SalariedClassification)
        self.assertIsInstance(employee.get_schedule(), MonthlySchedule)
        self.assertIsInstance(employee.get_method(), HoldMethod)
def test_adding_an_employee_paid_by_salary():
    db = MemoryDB()
    t = AddSalariedEmployee("Jim", "Work", 2000.0, db)
    empId = t.execute()
    e = db.get_employee(empId)

    assert e.name, "Jim"
    assert e.address, "Work"

    pc = e.classification
    assert isinstance(pc, SalariedClassification)
    assert pc.salary == 2000.0

    ps = e.schedule
    assert isinstance(ps, MonthlySchedule)

    pm = e.method
    assert isinstance(pm, HoldMethod)
Example #8
0
    def test_pay_single_salaried_employee_on_wrong_date(self):
        emp_id = EmpId(1)
        transaction = AddSalariedEmployee(emp_id,
                                          'Bob',
                                          'Home',
                                          salary=1000.00)
        transaction.execute()

        pay_date = date(2001, 11, 29)
        transaction = PaydayTransaction(pay_date)
        transaction.execute()
        self.assertFalse(transaction.get_paycheck(emp_id))
def test_adding_a_service_charge_to_a_member():
    db = MemoryDB()
    empId = AddSalariedEmployee("Bill", "Home", 1000, db).execute()
    e = db.get_employee(empId)

    ChangeUnionMember(empId, 10.0, db).execute()

    sct = AddServiceCharge(e.memberId, date.today(), 12.95, db)
    sct.execute()

    sc = e.affiliation.get_service_charge(date.today())
    assert sc.charge == 12.95
    assert sc.date == date.today()
Example #10
0
    def test_pay_single_salaried_employee(self):
        emp_id = EmpId(1)
        transaction = AddSalariedEmployee(emp_id,
                                          'Bob',
                                          'Home',
                                          salary=1000.00)
        transaction.execute()

        pay_date = date(2001, 11, 30)
        transaction = PaydayTransaction(pay_date)
        transaction.execute()
        self.validate_paycheck(transaction, emp_id, pay_date, 1000.00)
Example #11
0
    def test_change_hold_transaction(self):
        emp_id = EmpId(1)
        transaction = AddSalariedEmployee(emp_id,
                                          'Bob',
                                          'Home',
                                          salary=1000.00)
        transaction.execute()
        transaction = ChangeHoldTransaction(emp_id, address='test address')
        transaction.execute()

        method = g_payroll_database.get_employee(emp_id).get_method()
        self.assertIsInstance(method, HoldMethod)
        self.assertEqual('test address', method.get_address())
Example #12
0
def test_changing_an_address_of_an_employee():
    db = MemoryDB()
    empId = AddSalariedEmployee("Bohn", "wrong", 1500, db).execute()

    cs = ChangeHourly(empId, 12.25, db)
    cs.execute()

    e = db.get_employee(empId)

    pc = e.classification
    assert isinstance(pc, HourlyClassification)
    assert pc.hourly_rate == 12.25

    ps = e.schedule
    assert isinstance(ps, WeeklySchedule)
Example #13
0
    def test_change_direct_transaction(self):
        emp_id = EmpId(1)
        transaction = AddSalariedEmployee(emp_id,
                                          'Bob',
                                          'Home',
                                          salary=1000.00)
        transaction.execute()
        transaction = ChangeDirectTransaction(emp_id,
                                              bank='VTB',
                                              account=1234123412341234)
        transaction.execute()

        method = g_payroll_database.get_employee(emp_id).get_method()
        self.assertIsInstance(method, DirectMethod)
        self.assertEqual('VTB', method.get_bank())
        self.assertEqual(1234123412341234, method.get_account())
Example #14
0
    def test_change_commissioned_transaction(self):
        emp_id = EmpId(1)
        transaction = AddSalariedEmployee(emp_id,
                                          'Bob',
                                          'Home',
                                          salary=1000.00)
        transaction.execute()
        transaction = ChangeCommissionedTransaction(emp_id,
                                                    salary=2500,
                                                    commission_rate=3.2)
        transaction.execute()

        employee = g_payroll_database.get_employee(emp_id)
        classification = employee.get_classification()
        self.assertIsInstance(classification, CommissionedClassification)
        self.assertEqual(2500, classification.get_salary())
        self.assertEqual(3.2, classification.get_commission_rate())
        self.assertIsInstance(employee.get_schedule(), BiweeklySchedule)
Example #15
0
    def test_salaried_union_member_dues(self):
        emp_id = EmpId(1)
        transaction = AddSalariedEmployee(emp_id,
                                          'Bob',
                                          'Home',
                                          salary=1000.00)
        transaction.execute()
        member_id = MemberId(7734)
        transaction = ChangeMemberTransaction(emp_id, member_id, dues=9.42)
        transaction.execute()

        pay_date = date(2001, 11, 30)
        transaction = PaydayTransaction(pay_date)
        transaction.execute()

        paycheck = transaction.get_paycheck(emp_id)
        self.assertEqual(pay_date, paycheck.get_pay_date())
        self.assertEqual(1000, paycheck.get_gross_pay())
        self.assertEqual('Hold', paycheck.get_field('Disposition'))
        self.assertEqual(5 * 9.42, paycheck.get_deductions())
        self.assertEqual(1000 - 5 * 9.42, paycheck.get_net_pay())