def test_format_cells():
    grid = [["a", percentage("0/3")], ["b", "=1/2", 2, 4.4]]
    sheet_id = 37
    expected = {
        'updateCells': {
            'rows': [{
                'values': [string_cell("a"),
                           percentage("0/3")]
            }, {
                'values': [
                    string_cell("b"),
                    formula_cell("=1/2"),
                    number_cell(2),
                    number_cell(4.4)
                ]
            }],
            'fields':
            '*',
            'start': {
                'sheetId': sheet_id,
                'rowIndex': 0,
                'columnIndex': 0
            }
        }
    }
    assert cells_request(sheet_id, grid) == expected
Esempio n. 2
0
def fracking_full_data_tab(fund_name, init_data, fracking_patterns):
    headers = [
        'Name of Local Authority Pension Fund', 'Description of Holding',
        'Sub-category/Classification', 'Fracking Companies', 'Verification',
        'Fracking Amounts', 'All Amounts'
    ]

    rows = [headers]

    for init_row in init_data:
        if not is_valid_input_row(init_row):
            print('SKIPPING INVALID ROW: ' + str(init_row))
            continue
        rowNo = len(rows) + 1
        cellId = 'B' + str(rowNo)
        fracking_formula = None
        if (cellId == 'B2'):
            fracking_formula = formula.pattern_match('B2:B', fracking_patterns)
        row = [
            fund_name,
            init_row.get('Description of Holding', ''),
            init_row.get('Sub-category/Classification', ''), fracking_formula,
            formula.verification_1col(rowNo, 'D', 'B'),
            formula.fossil_amount(rowNo, 'E', 'G'),
            spreadsheet.number_cell(init_row.get('Amount', ''))
        ]
        rows.append(row)

    return rows
Esempio n. 3
0
def full_data_tab(fund_name, init_data, oil_patterns, coal_patterns):
    headers = [
        'Name of Local Authority Pension Fund', 'Description of Holding',
        'Sub-category/Classification', 'Oil/Gas Companies', 'Coal Companies',
        'Verification', 'Fossil Fuel Amounts', 'All Amounts'
    ]

    rows = [headers]

    for init_row in init_data:
        if not is_valid_input_row(init_row):
            print('SKIPPING invalid row: ' + str(init_row))
            continue
        rowNo = len(rows) + 1
        cellId = 'B' + str(rowNo)
        oil_formula = None
        coal_formula = None
        if (cellId == 'B2'):
            oil_formula = formula.pattern_match('B2:B', oil_patterns)
            coal_formula = formula.pattern_match('B2:B', coal_patterns)
        row = [
            fund_name,
            init_row.get('Description of Holding', ''),
            init_row.get('Sub-category/Classification', ''), oil_formula,
            coal_formula,
            formula.verification(rowNo, 'D', 'E', 'B'),
            formula.fossil_amount(rowNo, 'F', 'H'),
            spreadsheet.number_cell(init_row.get('Amount', ''))
        ]
        rows.append(row)

    return rows
def test_fracking_full_data_tab():
    init_data = [
        fund_record('BP Oil', '23400', 'category1'),
        fund_record('Big Coal', '345.3', 'category2'),
        fund_record('Evil Doers', '455.4', 'category3'),
        fund_record('', '0', 'blibble'),
        fund_record('No amount', '', 'category4')
    ]
    fracking_patterns = [{
        'name': 'BP',
        'pattern': '^BP*'
    }, {
        'name': 'Shell',
        'pattern': 'shell'
    }]
    expected = [[
        'Name of Local Authority Pension Fund', 'Description of Holding',
        'Sub-category/Classification', 'Fracking Companies', 'Verification',
        'Fracking Amounts', 'All Amounts'
    ],
                [
                    'A fund', 'BP Oil', 'category1',
                    formula.pattern_match('B2:B', fracking_patterns),
                    formula.verification_1col(2, 'D', 'B'),
                    formula.fossil_amount(2, 'E', 'G'),
                    number_cell(23400.0)
                ],
                [
                    'A fund', 'Big Coal', 'category2', None,
                    formula.verification_1col(3, 'D', 'B'),
                    formula.fossil_amount(3, 'E', 'G'),
                    number_cell(345.3)
                ],
                [
                    'A fund', 'Evil Doers', 'category3', None,
                    formula.verification_1col(4, 'D', 'B'),
                    formula.fossil_amount(4, 'E', 'G'),
                    number_cell(455.4)
                ]]
    assert expected == stage5.fracking_full_data_tab('A fund', init_data,
                                                     fracking_patterns)
def test_full_data_tab():
    init_data = [
        fund_record('BP Oil', '23400', 'category1'),
        fund_record('Big Coal', '345.3', 'category2'),
        fund_record('Evil Doers', '455.4', 'category3')
    ]
    oil_patterns = [{
        'name': 'BP',
        'pattern': '^BP*'
    }, {
        'name': 'Shell',
        'pattern': 'shell'
    }]
    coal_patterns = [{'name': 'King Coal', 'pattern': '^king coal'}]
    expected = [[
        'Name of Local Authority Pension Fund', 'Description of Holding',
        'Sub-category/Classification', 'Oil/Gas Companies', 'Coal Companies',
        'Verification', 'Fossil Fuel Amounts', 'All Amounts'
    ],
                [
                    'A fund', 'BP Oil', 'category1',
                    formula.pattern_match('B2:B', oil_patterns),
                    formula.pattern_match('B2:B', coal_patterns),
                    formula.verification(2, 'D', 'E', 'B'),
                    formula.fossil_amount(2, 'F', 'H'),
                    number_cell(23400.0)
                ],
                [
                    'A fund', 'Big Coal', 'category2', None, None,
                    formula.verification(3, 'D', 'E', 'B'),
                    formula.fossil_amount(3, 'F', 'H'),
                    number_cell(345.3)
                ],
                [
                    'A fund', 'Evil Doers', 'category3', None, None,
                    formula.verification(4, 'D', 'E', 'B'),
                    formula.fossil_amount(4, 'F', 'H'),
                    number_cell(455.4)
                ]]
    assert expected == stage5.full_data_tab('A fund', init_data, oil_patterns,
                                            coal_patterns)
Esempio n. 6
0
def addPooledTab():
    headers = ["Rank", "Name", "Category", "Amount", "Is Pooled? (Y/N)"]
    rows = []
    rankCol = 'A'  # in this sheet
    nameCol = 'A'
    categoryCol = 'B'
    amount = 'C'
    for i in range(1, 16):
        rankCell = 'A' + str(i + 1)
        row = [
            s.number_cell(i),
            f.largest_value_name('Full Data', 'C', 'A', rankCell),
            f.largest_value_name('Full Data', 'C', 'B', rankCell),
            f.largest_value('Full Data', 'C', rankCell)
        ]
        rows.append(row)
    return [headers] + rows
def test_number_cell():
    assert number_cell('3.3') == number_cell(3.3)
    assert number_cell('3,333.0') == number_cell(3333.0)