コード例 #1
0
    def testTimecardsWithDifferentDatesHaveIndependentData(self):
        tc1 = Timecard("2015-06-01")
        item1 = minimum_item(
                time_spec="10:00-11:00",
                notes="blah blah",
                )
        tc1.add(**item1)

        tc2 = Timecard("2015-06-02")
        item2 = minimum_item(
                time_spec="16:00-20:00",
                notes="moo moo",
                )
        tc2.add(**item2)

        self.assertNotEqual(tc1, tc2)
コード例 #2
0
 def setUp(self):
     self.timecard = Timecard("2015-06-01")
コード例 #3
0
class TestTimecard(unittest.TestCase):
    def setUp(self):
        self.timecard = Timecard("2015-06-01")

    def testRaisesValueErrorOnInvalidDateString(self):
        with self.assertRaises(ValueError):
            Timecard("201-07-22")

    def testRaisesTypeErrorOnInvalidDateData(self):
        with self.assertRaises(TypeError):
            Timecard(20)

    def testHoursWorkedDefaultValue(self):
        self.assertEqual(Timecard("2015-07-22").hours_worked, 0)

    def testNotesDefaultValue(self):
        self.assertEqual(Timecard("2015-06-01").notes, "")

    def testTicketsDefaultValue(self):
        self.assertEqual(Timecard("2015-06-01").tickets, "")

    def testAddOneHourTimecardEntryThenHoursWorkedIsOne(self):
        item = minimum_item(time_spec="10:00-11:00")
        self.timecard.add(**item)
        self.assertEqual(self.timecard.hours_worked, 1)

    def testAddThirtyMinutesTimecardEntryThenHoursWorkedIsOneHalf(self):
        item = minimum_item(time_spec="10:00-10:30")
        self.timecard.add(**item)
        self.assertEqual(self.timecard.hours_worked, 0.5)

    def testAddRaisesValueErrorOnInvalidTimeString(self):
        with self.assertRaises(ValueError):
            item = minimum_item(time_spec="10:00")
            self.timecard.add(**item)

    def testAddSwappedTimeSpecRaisesValueError(self):
        with self.assertRaises(ValueError):
            item = minimum_item(time_spec="10:00-09:00")
            self.timecard.add(**item)

    def testAddEqualStartEndTimesRaisesValueError(self):
        with self.assertRaises(ValueError):
            item = minimum_item(time_spec="10:00-10:00")
            self.timecard.add(**item)

    def testAddAcceptsEmptyNotes(self):
        item = minimum_item(time_spec="10:00-11:00", notes="")
        self.timecard.add(**item)
        self.assertEqual(self.timecard.notes, "")

    def testAddSetsNotes(self):
        item = minimum_item(time_spec="10:00-11:00", notes="stuff")
        self.timecard.add(**item)
        self.assertEqual(self.timecard.notes, "stuff")

    def testAddAcceptsNotesAsList(self):
        item = minimum_item(time_spec="10:00-11:00", notes=["stuff"])
        self.timecard.add(**item)
        self.assertEqual(self.timecard.notes, "stuff")

    def testAddAcceptsEmptyTickets(self):
        item = minimum_item(time_spec="10:00-11:00", tickets="")
        self.timecard.add(**item)
        self.assertEqual(self.timecard.tickets, "")

    def testAddWithTwoItemsFromSameDaySumsTheHoursWorked(self):
        first_item = minimum_item(time_spec="09:00-11:00")
        second_item = minimum_item(time_spec="12:00-14:00")
        self.timecard.add(**first_item)
        self.timecard.add(**second_item)
        self.assertEqual(self.timecard.hours_worked, 4)

    def testAddWithSameTimeSpecThrowsError(self):
        with self.assertRaises(ValueError):
            first_item = minimum_item(time_spec="09:00-11:00")
            second_item = minimum_item(time_spec="09:00-11:00")
            self.timecard.add(**first_item)
            self.timecard.add(**second_item)

    def testAddWithTwoItemsFromSameDayAppendsNotesText(self):
        first_item = minimum_item(
                time_spec="09:00-11:00",
                notes="first item notes\n",
                )
        second_item = minimum_item(
                time_spec="12:00-14:00",
                notes="second item notes\n",
                )
        self.timecard.add(**first_item)
        self.timecard.add(**second_item)
        self.assertEqual(self.timecard.notes,
            "first item notes\nsecond item notes\n")

    def testAddWithTwoItemsFromSameDayAppendsTicketsText(self):
        first_item = minimum_item(
                time_spec="09:00-11:00",
                tickets="#1234",
                )
        second_item = minimum_item(
                time_spec="12:00-14:00",
                tickets="#9876",
                )
        self.timecard.add(**first_item)
        self.timecard.add(**second_item)
        self.assertEqual(self.timecard.tickets,
            "#1234,#9876")

    def testAddWithTwoItemsFromSameDayAppendsUniqueTicketsTextSimple(self):
        first_item = minimum_item(
                time_spec="09:00-11:00",
                tickets="#1234",
                )
        second_item = minimum_item(
                time_spec="12:00-14:00",
                tickets="#1234",
                )
        self.timecard.add(**first_item)
        self.timecard.add(**second_item)
        self.assertEqual(self.timecard.tickets,
            "#1234")

    def testAddWithTwoItemsFromSameDayAppendsUniqueTicketsTextComplex(self):
        first_item = minimum_item(
                time_spec="09:00-11:00",
                tickets="#1234,#9876",
                )
        second_item = minimum_item(
                time_spec="12:00-14:00",
                tickets="#9876",
                )
        self.timecard.add(**first_item)
        self.timecard.add(**second_item)
        self.assertEqual(self.timecard.tickets,
            "#1234,#9876")

    def testTimecardsWithDifferentDatesHaveIndependentData(self):
        tc1 = Timecard("2015-06-01")
        item1 = minimum_item(
                time_spec="10:00-11:00",
                notes="blah blah",
                )
        tc1.add(**item1)

        tc2 = Timecard("2015-06-02")
        item2 = minimum_item(
                time_spec="16:00-20:00",
                notes="moo moo",
                )
        tc2.add(**item2)

        self.assertNotEqual(tc1, tc2)

    def testTimecardAcceptsDatetimeObjectAsDate(self):
        item_date = date(2015, 6, 1)
        timecard = Timecard(item_date)
        self.assertEqual(timecard.date, item_date)