'''
Zaimplementuj klasę Pracownik umożliwiającą rejestrowanie czasu
pracy oraz wypłacanie pensji na podstawie zadanej stawki
godzinowej. Jeżeli pracownik będzie pracował więcej niż 8 godzin
(podczas pojedynczej rejestracji czasu) to kolejne godziny policz
jako nadgodziny (z podwójną stawką godzinową).
Przykład użycia:
>>> p = Pracownik('Jan', 'Nowak', 100.0)
>>> p.praca(6)
>>> p.praca(4)
>>> p.wyplata()
1000.0
>>> p.wyplata()
0.0
>>> p.praca(10)
>>> p.wyplata()
1200.0
'''

class Pracownik:
    def __init__(self, imie, nazwisko, stawka):
        self.imie = imie
        self.nazwisko = nazwisko
        self.stawka = stawka
        self.kasa = 0

    def praca(self, godziny):
        self.kasa += godziny * self.stawka
        if godziny > 8:
            self.kasa += (godziny - 8) * self.stawka

    def wyplata(self):
        try:
            return self.kasa
        finally:
            self.kasa = 0


def test_jedna_praca():
    p = Pracownik('Jan', 'Nowak', 100.0)
    p.praca(6)
    wynik = p.wyplata()
    assert wynik == 600

def test_suma_prac():
    p = Pracownik('Jan', 'Nowak', 100.0)
    p.praca(6)
    p.praca(4)
    wynik = p.wyplata()
    assert wynik == 1000

def test_nadgodziny():
    p = Pracownik('Jan', 'Nowak', 100.0)
    p.praca(10)
    p.praca(5)
    wynik = p.wyplata()
    assert wynik == 1700

def test_zero():
    p = Pracownik('Jan', 'Nowak', 100.0)
    p.praca(10)
    p.praca(5)
    wynik1 = p.wyplata()
    # w tym teście nie sprawdzamy wartości pierwszej wypłaty - tym zajmują się inne testy
    wynik2 = p.wyplata()
    # w tym teście sprawdzamy, czy kolejna wypłata daje zero
    assert wynik2 == 0


def main():
    p = Pracownik('Jan', 'Nowak', 100.0)
    p.praca(6)
    p.praca(4)
    wynik = p.wyplata()
    print(wynik)
    wynik = p.wyplata()
    print(wynik)
    p.praca(10)
    wynik = p.wyplata()
    print(wynik)

if __name__ == '__main__':
    main()
