-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathtest_bu_internal_invoice.py
More file actions
71 lines (63 loc) · 2.19 KB
/
Copy pathtest_bu_internal_invoice.py
File metadata and controls
71 lines (63 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from unittest import TestCase
import pandas
from process_report.tests import util as test_utils
class TestBuInternalInvoice(TestCase):
def _get_test_invoice(
self,
institutions,
projects,
costs,
is_billable=None,
missing_pi=None,
credits=None,
subsidies=None,
pi_balances=None,
):
if is_billable is None:
is_billable = [True for _ in range(len(institutions))]
if missing_pi is None:
missing_pi = [False for _ in range(len(institutions))]
if credits is None:
credits = [0 for _ in range(len(institutions))]
if subsidies is None:
subsidies = [0 for _ in range(len(institutions))]
if pi_balances is None:
pi_balances = costs[:]
return pandas.DataFrame(
{
"Institution": institutions,
"Is Billable": is_billable,
"Missing PI": missing_pi,
"Project": projects,
"Cost": costs,
"Credit": credits,
"Subsidy": subsidies,
"PI Balance": pi_balances,
}
)
def test_prepare_export(self):
test_invoice = self._get_test_invoice(
institutions=[
"Boston University",
"MIT",
"Boston University",
"Boston University",
],
projects=["ProjectA", "ProjectB", "ProjectC", "ProjectD"],
costs=[100, 200, 300, 400],
is_billable=[True, True, False, True],
missing_pi=[False, False, False, True],
)
inv = test_utils.new_bu_internal_invoice(data=test_invoice)
inv._prepare_export()
def test_sum_project_allocations(self):
test_invoice = self._get_test_invoice(
institutions=["Boston University", "Boston University"],
projects=["ProjectA", "ProjectA"],
costs=[100, 200],
credits=[10, 20],
subsidies=[5, 5],
pi_balances=[90, 180],
)
inv = test_utils.new_bu_internal_invoice(data=test_invoice)
inv._sum_project_allocations(test_invoice)