Esempio n. 1
0
    def test_create_report_added(self):
        """Tests mailroom.create_report after adding donors."""

        mailroom.add_donation("Name3", 23)
        correct = "Donor Name                | Total Given | Num Gifts | Average Gift\n" + \
                  "------------------------------------------------------------------\n" + \
                  "Name3                       $     23.00           1   $      23.00\n" + \
                  "Name2                       $      3.00           2   $       1.50\n" + \
                  "Name1                       $      1.00           1   $       1.00"
        self.assertEqual(correct, mailroom.create_report())

        mailroom.add_donation("Name3", 3)
        correct = "Donor Name                | Total Given | Num Gifts | Average Gift\n" + \
                  "------------------------------------------------------------------\n" + \
                  "Name3                       $     26.00           2   $      13.00\n" + \
                  "Name2                       $      3.00           2   $       1.50\n" + \
                  "Name1                       $      1.00           1   $       1.00"
        self.assertEqual(correct, mailroom.create_report())

        mailroom.add_donation("Name1", 50)
        correct = "Donor Name                | Total Given | Num Gifts | Average Gift\n" + \
                  "------------------------------------------------------------------\n" + \
                  "Name1                       $     51.00           2   $      25.50\n" + \
                  "Name3                       $     26.00           2   $      13.00\n" + \
                  "Name2                       $      3.00           2   $       1.50"
        self.assertEqual(correct, mailroom.create_report())
Esempio n. 2
0
    def test_create_report(self):
        interceptor, hold_stdout = intercept_stdout()

        mailroom.create_report()
        assert interceptor.getvalue().strip() == expected_report

        sys.stdout == hold_stdout
def test_create_report():
    capturedOutput = io.StringIO()  # Create StringIO object
    sys.stdout = capturedOutput  #  and redirect stdout.
    mailroom.create_report(mailroom.donor_db)  # Call function.
    sys.stdout = sys.__stdout__  # Reset redirect.
    report_text = capturedOutput.getvalue()
    print(report_text)  # Now works as before.
    assert report_text == '''Donor Name                | Total Given | Num Gifts | Average Gift
Esempio n. 4
0
def test_create_report(capsys):
    m.create_report()
    expected_1 = 'Donor Name                | Total Given | Num Gifts | Average Gift\n'
    expected_2 = '-------------------------------------------------------------------\n'
    expected_3 = 'Robert Wickens             $    9000.10           1  $     9000.10\n'
    expected = expected_1 + expected_2 + expected_3
    report_input = [[1369.80, 'Adam Jones', 3, 456.60]]
    m.write_report(report_input)
    out, err = capsys.readouterr()
    assert out.startswith(expected)
Esempio n. 5
0
def test_create_report_sorted():
    assert create_report() == [
        'LeBron James,6609558.50,4,1652389.62',
        'Bill Gates,4040233.25,3,1346744.42',
        'Jimmy Kimmel,1002495.96,5,200499.19', 'Angelina Jolie,6.47,2,3.24',
        'The Great Leader of the Azerothian people,3.47,1,3.47'
    ]
Esempio n. 6
0
def test_create_report(donor_list, result):
    """
    test the create_report function
    uses the same parameter list as the test_creates_table_for_report function
    """
    from mailroom import create_report
    assert create_report(donor_list) == result
Esempio n. 7
0
def test_create_report():
    # add a new donor and check that they are in report
    mailroom.add_new_donation('New Donor', 23.00)
    report = mailroom.create_report()
    assert ('New Donor', 23.0, 1, 23.0) in report
    # verify average donation
    assert report[0][1] / report[0][2] == report[0][3]
Esempio n. 8
0
def test_create_report():
    # add a new donor and check that they are in report
    mailroom.add_new_donation('New Donor', 23.00)
    report = mailroom.create_report()
    assert ('New Donor', 23.0, 1, 23.0) in report
    # verify average donation
    assert report[0][1]/report[0][2] == report[0][3]
Esempio n. 9
0
def test_create_report():
    assert create_report().strip() == (
        "Donor Name          | Total Given | Num Gifts | Average Gift\n"
        "-------------------------------------------------------------\n"
        "Bill Ted            | $    726.63 |         3 | $     242.21\n"
        "Lisa Grant          | $    209.70 |         2 | $     104.85\n"
        "Frank Fred          | $    178.76 |         3 | $      59.59\n"
        "Steve Lincoln       | $    165.28 |         2 | $      82.64\n"
        "Laura Todd          | $      5.75 |         1 | $       5.75"
        )
Esempio n. 10
0
    def test_create_report_baseline(self):
        """Tests mailroom.create_report with baseline donors"""

        # Baseline report
        report = mailroom.create_report()
        correct = "Donor Name                | Total Given | Num Gifts | Average Gift\n" + \
                  "------------------------------------------------------------------\n" + \
                  "Name2                       $      3.00           2   $       1.50\n" + \
                  "Name1                       $      1.00           1   $       1.00"
        self.assertEqual(report, correct)
Esempio n. 11
0
def test_create_report():
    report = \
    f'Donor Name        |     Total Given         |Num Gifts                |Average Gift   \n\
    ------------------------------------------------------------------------------------------\n\
    Scott Newman         $      5100.0                2                $      2550.0\n\
    Jeff Hansen          $       600.0                2                $       300.0\n\
    Rabi Das             $      1450.0                2                $       725.0\n\
    Jan Balard           $       850.0                2                $       425.0\n\
    Joe McHennry         $      3000.0                2                $      1500.0\n'

    assert mailroom.create_report() == report
def flow_control(usr_action):
    """
        handles logic and controls which functions are called based on user input.

        {Extended description}

        Parameters:
        usr_action (string): currently two strings: ty|cr

        Returns:
        {none}

        """
    ua = usr_action.lower()
    if ua == "ty":
        response_2 = input(
            "Please enter a name.\n-type 'list' to view a list of donors\n-type in a "
            "new a new donor name to add to list > ")
        mailroom.create_ty_letter(response_2)
    elif ua == "cr":
        mailroom.create_report()
Esempio n. 13
0
def test_create_report():
    """Test the create_report function for accurate rerport data creation."""

    report_data = mail.create_report()
    assert any(item == ('Arnold Schwarzenegger', 100000, 1, 100000 / 1)
               for item in report_data)
    assert any(item == ('Lebron James', 1000000, 1, 1000000 / 1)
               for item in report_data)
    assert any(item == ('Elon Musk', 2000000, 1, 2000000 / 1)
               for item in report_data)
    assert any(item == ('Walter White', 500000, 1, 500000 / 1)
               for item in report_data)
    assert any(item == ('Gordon Ramsay', 1280000, 1, 1280000 / 1)
               for item in report_data)
    assert any(item == ('Alexander Boone', 1000, 1, 1000 / 1)
               for item in report_data)
def test_create_report():
    table_list = list()
    table_list.append(
        "Donor Name                | Total Given | Num Gifts | Average Gift")
    table_list.append(
        "------------------------------------------------------------------")
    table_list.append(
        "Becky                      $    55500.00          3  $    18500.00")
    table_list.append(
        "Sally                      $    44400.00          3  $    14800.00")
    table_list.append(
        "Todd                       $    33300.00          3  $    11100.00")
    table_list.append(
        "Bob                        $    22200.00          3  $     7400.00")
    table_list.append(
        "Fred                       $    11100.00          3  $     3700.00")

    assert mailroom.create_report() == table_list
Esempio n. 15
0
def test_create_report():
    """
    Test the mailroom create_report function
    """
    m.donors.clear()
    m.record_donation("Bob Smith", 1234.56)
    m.record_donation("Bob Smith", 1234.56)
    m.record_donation("Bob Smith", 1234.56)
    m.record_donation("Sally Jones", 876.54)
    m.record_donation("Sally Jones", 876.54)
    m.record_donation("Sally Jones", 876.54)
    m.record_donation("Sally Jones", 876.54)
    report_text = m.create_report()
    assert "Bob Smith" in report_text
    assert "1234.56" in report_text  # Bob's average
    assert "3703.68" in report_text  # Bob's total
    assert "Sally Jones" in report_text
    assert "876.54" in report_text  # Sally's average
    assert "3506.16" in report_text  # Sally's total
Esempio n. 16
0
def test_create_report():
    """Test the create report function"""
    text_string = mailroom.create_report()
    reference_text = "Paul Allen                 $      708.42          3  \
$      236.14"
    assert text_string.split("\n")[-2] == reference_text
Esempio n. 17
0
def test_create_report_function_runs():
    """Test that create_report() function runs by running True ."""
    from mailroom import create_report
    assert create_report()
Esempio n. 18
0
def test_create_report():
    from mailroom import create_report
    assert create_report() is True
Esempio n. 19
0
def test_donation_amounts_in_create_report(donation):
    """Test if donation is  in create_report()."""
    from mailroom import create_report
    out = create_report()
    assert out.find(donation)
Esempio n. 20
0
def test_avg_donation_in_create_report(check):
    """Test if the average  amount in create_report()."""
    from mailroom import create_report
    out = create_report()
    assert out.find(check)
Esempio n. 21
0
def test_display_report():
    report = create_report()
    assert create_report() == report
Esempio n. 22
0
def test_create_report(donors):
    """Test that the create_report contains the correct sums at least."""
    with mock.patch('sys.stdout', new_callable=StringIO) as mock_stdout:
        mailroom.create_report(donors)
        assert "6" in mock_stdout.getvalue()
        assert "12" in mock_stdout.getvalue()