feat: Add GitHub PR Checks Workflow

Coverage Report
| File | Stmts | Miss | Cover | Missing |
|---|
| netsuitesdk |
| __init__.py | 4 | 0 | 100% | |
| connection.py | 70 | 0 | 100% | |
| netsuitesdk/api |
| __init__.py | 0 | 0 | 100% | |
| accounts.py | 6 | 0 | 100% | |
| adv_inter_company_journal_entries.py | 7 | 0 | 100% | |
| base.py | 90 | 10 | 89% | 26–33, 43–44, 56, 64, 85, 103, 121–122 |
| classifications.py | 6 | 0 | 100% | |
| currencies.py | 10 | 0 | 100% | |
| custom_record_types.py | 11 | 0 | 100% | |
| custom_records.py | 17 | 0 | 100% | |
| customers.py | 21 | 0 | 100% | |
| departments.py | 6 | 0 | 100% | |
| employees.py | 44 | 8 | 82% | 17–40 |
| expense_categories.py | 6 | 0 | 100% | |
| expense_reports.py | 58 | 2 | 97% | 38, 46 |
| files.py | 23 | 0 | 100% | |
| folders.py | 17 | 0 | 100% | |
| items.py | 12 | 0 | 100% | |
| journal_entries.py | 41 | 1 | 98% | 81 |
| locations.py | 6 | 0 | 100% | |
| price_level.py | 6 | 0 | 100% | |
| projects.py | 6 | 0 | 100% | |
| subsidiaries.py | 6 | 0 | 100% | |
| tax_groups.py | 6 | 0 | 100% | |
| tax_items.py | 6 | 0 | 100% | |
| vendor_bills.py | 76 | 21 | 72% | 65–92, 119, 125, 128–132, 136 |
| vendor_payments.py | 46 | 1 | 98% | 41 |
| vendors.py | 21 | 0 | 100% | |
| netsuitesdk/errors |
| __init__.py | 0 | 0 | 100% | |
| errors.py | 2 | 0 | 100% | |
| helpers.py | 14 | 1 | 93% | 21 |
| parser.py | 27 | 17 | 37% | 11–29, 36–38 |
| netsuitesdk/internal |
| __init__.py | 0 | 0 | 100% | |
| client.py | 319 | 83 | 74% | 62–63, 75–77, 89, 130–131, 149–150, 163, 170–171, 178–179, 182–204, 226, 233–241, 261–264, 296, 301–307, 339, 342–345, 369, 371, 374–375, 396, 431–432, 437, 483–487, 501–502, 555–564, 613, 617, 623–627 |
| constants.py | 4 | 0 | 100% | |
| exceptions.py | 16 | 1 | 94% | 25 |
| netsuite_types.py | 2 | 0 | 100% | |
| utils.py | 40 | 4 | 90% | 34, 52, 63, 65 |
| TOTAL | 1052 | 149 | 86% | |
| Tests |
Skipped |
Failures |
Errors |
Time |
| 102 |
11 :zzz: |
12 :x: |
0 :fire: |
6m 58s :stopwatch: |

Coverage Report
| File | Stmts | Miss | Cover | Missing |
|---|
| netsuitesdk |
| __init__.py | 4 | 0 | 100% | |
| connection.py | 70 | 0 | 100% | |
| netsuitesdk/api |
| __init__.py | 0 | 0 | 100% | |
| accounts.py | 6 | 0 | 100% | |
| adv_inter_company_journal_entries.py | 7 | 0 | 100% | |
| base.py | 90 | 10 | 89% | 26–33, 43–44, 56, 64, 85, 103, 121–122 |
| classifications.py | 6 | 0 | 100% | |
| currencies.py | 10 | 0 | 100% | |
| custom_record_types.py | 11 | 0 | 100% | |
| custom_records.py | 17 | 0 | 100% | |
| customers.py | 21 | 0 | 100% | |
| departments.py | 6 | 0 | 100% | |
| employees.py | 44 | 8 | 82% | 17–40 |
| expense_categories.py | 6 | 0 | 100% | |
| expense_reports.py | 58 | 2 | 97% | 38, 46 |
| files.py | 23 | 0 | 100% | |
| folders.py | 17 | 0 | 100% | |
| items.py | 12 | 0 | 100% | |
| journal_entries.py | 41 | 1 | 98% | 81 |
| locations.py | 6 | 0 | 100% | |
| price_level.py | 6 | 0 | 100% | |
| projects.py | 6 | 0 | 100% | |
| subsidiaries.py | 6 | 0 | 100% | |
| tax_groups.py | 6 | 0 | 100% | |
| tax_items.py | 6 | 0 | 100% | |
| vendor_bills.py | 76 | 21 | 72% | 65–92, 119, 125, 128–132, 136 |
| vendor_payments.py | 46 | 1 | 98% | 41 |
| vendors.py | 21 | 0 | 100% | |
| netsuitesdk/errors |
| __init__.py | 0 | 0 | 100% | |
| errors.py | 2 | 0 | 100% | |
| helpers.py | 14 | 1 | 93% | 21 |
| parser.py | 27 | 17 | 37% | 11–29, 36–38 |
| netsuitesdk/internal |
| __init__.py | 0 | 0 | 100% | |
| client.py | 319 | 83 | 74% | 62–63, 75–77, 89, 130–131, 149–150, 163, 170–171, 178–179, 182–204, 226, 233–241, 261–264, 296, 301–307, 339, 342–345, 369, 371, 374–375, 396, 431–432, 437, 483–487, 501–502, 555–564, 613, 617, 623–627 |
| constants.py | 4 | 0 | 100% | |
| exceptions.py | 16 | 1 | 94% | 25 |
| netsuite_types.py | 2 | 0 | 100% | |
| utils.py | 40 | 4 | 90% | 34, 52, 63, 65 |
| TOTAL | 1052 | 149 | 86% | |
| Tests |
Skipped |
Failures |
Errors |
Time |
| 102 |
11 :zzz: |
12 :x: |
0 :fire: |
4m 31s :stopwatch: |
will wait for clickup removal - removing request for now

Coverage Report
| File | Stmts | Miss | Cover | Missing |
|---|
| netsuitesdk |
| __init__.py | 4 | 0 | 100% | |
| connection.py | 70 | 0 | 100% | |
| netsuitesdk/api |
| __init__.py | 0 | 0 | 100% | |
| accounts.py | 6 | 0 | 100% | |
| adv_inter_company_journal_entries.py | 7 | 0 | 100% | |
| base.py | 90 | 10 | 89% | 26–33, 43–44, 56, 64, 85, 103, 121–122 |
| classifications.py | 6 | 0 | 100% | |
| currencies.py | 10 | 0 | 100% | |
| custom_record_types.py | 11 | 0 | 100% | |
| custom_records.py | 17 | 0 | 100% | |
| customers.py | 21 | 0 | 100% | |
| departments.py | 6 | 0 | 100% | |
| employees.py | 44 | 8 | 82% | 17–40 |
| expense_categories.py | 6 | 0 | 100% | |
| expense_reports.py | 58 | 2 | 97% | 38, 46 |
| files.py | 23 | 0 | 100% | |
| folders.py | 17 | 0 | 100% | |
| items.py | 12 | 0 | 100% | |
| journal_entries.py | 41 | 1 | 98% | 81 |
| locations.py | 6 | 0 | 100% | |
| price_level.py | 6 | 0 | 100% | |
| projects.py | 6 | 0 | 100% | |
| subsidiaries.py | 6 | 0 | 100% | |
| tax_groups.py | 6 | 0 | 100% | |
| tax_items.py | 6 | 0 | 100% | |
| vendor_bills.py | 76 | 21 | 72% | 65–92, 119, 125, 128–132, 136 |
| vendor_payments.py | 46 | 1 | 98% | 41 |
| vendors.py | 21 | 0 | 100% | |
| netsuitesdk/errors |
| __init__.py | 0 | 0 | 100% | |
| errors.py | 2 | 0 | 100% | |
| helpers.py | 14 | 1 | 93% | 21 |
| parser.py | 27 | 17 | 37% | 11–29, 36–38 |
| netsuitesdk/internal |
| __init__.py | 0 | 0 | 100% | |
| client.py | 322 | 85 | 74% | 62–63, 75–77, 89, 130–131, 149–150, 163, 170–171, 178–179, 182–204, 226, 233–241, 261–264, 296, 301–307, 339, 342–345, 369, 371, 374–375, 396, 431–432, 437, 483–487, 503–507, 560–569, 618, 622, 628–632 |
| constants.py | 4 | 0 | 100% | |
| exceptions.py | 16 | 1 | 94% | 25 |
| netsuite_types.py | 2 | 0 | 100% | |
| utils.py | 40 | 4 | 90% | 34, 52, 63, 65 |
| TOTAL | 1055 | 151 | 86% | |
| Tests |
Skipped |
Failures |
Errors |
Time |
| 102 |
11 :zzz: |
12 :x: |
0 :fire: |
6m 5s :stopwatch: |

Coverage Report
| File | Stmts | Miss | Cover | Missing |
|---|
| netsuitesdk |
| __init__.py | 4 | 0 | 100% | |
| connection.py | 70 | 0 | 100% | |
| netsuitesdk/api |
| __init__.py | 0 | 0 | 100% | |
| accounts.py | 6 | 0 | 100% | |
| adv_inter_company_journal_entries.py | 7 | 0 | 100% | |
| base.py | 90 | 10 | 89% | 26–33, 43–44, 56, 64, 85, 103, 121–122 |
| classifications.py | 6 | 0 | 100% | |
| currencies.py | 10 | 0 | 100% | |
| custom_record_types.py | 11 | 0 | 100% | |
| custom_records.py | 17 | 0 | 100% | |
| customers.py | 21 | 0 | 100% | |
| departments.py | 6 | 0 | 100% | |
| employees.py | 44 | 8 | 82% | 17–40 |
| expense_categories.py | 6 | 0 | 100% | |
| expense_reports.py | 58 | 2 | 97% | 38, 46 |
| files.py | 23 | 0 | 100% | |
| folders.py | 17 | 0 | 100% | |
| items.py | 12 | 0 | 100% | |
| journal_entries.py | 41 | 1 | 98% | 81 |
| locations.py | 6 | 0 | 100% | |
| price_level.py | 6 | 0 | 100% | |
| projects.py | 6 | 0 | 100% | |
| subsidiaries.py | 6 | 0 | 100% | |
| tax_groups.py | 6 | 0 | 100% | |
| tax_items.py | 6 | 0 | 100% | |
| vendor_bills.py | 76 | 21 | 72% | 65–92, 119, 125, 128–132, 136 |
| vendor_payments.py | 46 | 1 | 98% | 41 |
| vendors.py | 21 | 0 | 100% | |
| netsuitesdk/errors |
| __init__.py | 0 | 0 | 100% | |
| errors.py | 2 | 0 | 100% | |
| helpers.py | 14 | 1 | 93% | 21 |
| parser.py | 27 | 17 | 37% | 11–29, 36–38 |
| netsuitesdk/internal |
| __init__.py | 0 | 0 | 100% | |
| client.py | 322 | 85 | 74% | 62–63, 75–77, 89, 130–131, 149–150, 163, 170–171, 178–179, 182–204, 226, 233–241, 261–264, 296, 301–307, 339, 342–345, 369, 371, 374–375, 396, 431–432, 437, 483–487, 503–507, 560–569, 618, 622, 628–632 |
| constants.py | 4 | 0 | 100% | |
| exceptions.py | 16 | 1 | 94% | 25 |
| netsuite_types.py | 2 | 0 | 100% | |
| utils.py | 40 | 4 | 90% | 34, 52, 63, 65 |
| TOTAL | 1055 | 151 | 86% | |
| Tests |
Skipped |
Failures |
Errors |
Time |
| 102 |
11 :zzz: |
12 :x: |
0 :fire: |
4m 33s :stopwatch: |

Coverage Report
| File | Stmts | Miss | Cover | Missing |
|---|
| netsuitesdk |
| __init__.py | 4 | 0 | 100% | |
| connection.py | 70 | 0 | 100% | |
| netsuitesdk/api |
| __init__.py | 0 | 0 | 100% | |
| accounts.py | 6 | 0 | 100% | |
| adv_inter_company_journal_entries.py | 7 | 0 | 100% | |
| base.py | 90 | 10 | 89% | 26–33, 43–44, 56, 64, 85, 103, 121–122 |
| classifications.py | 6 | 0 | 100% | |
| currencies.py | 10 | 0 | 100% | |
| custom_record_types.py | 11 | 0 | 100% | |
| custom_records.py | 17 | 0 | 100% | |
| customers.py | 21 | 0 | 100% | |
| departments.py | 6 | 0 | 100% | |
| employees.py | 44 | 8 | 82% | 17–40 |
| expense_categories.py | 6 | 0 | 100% | |
| expense_reports.py | 58 | 2 | 97% | 38, 46 |
| files.py | 23 | 0 | 100% | |
| folders.py | 17 | 0 | 100% | |
| items.py | 12 | 0 | 100% | |
| journal_entries.py | 41 | 1 | 98% | 81 |
| locations.py | 6 | 0 | 100% | |
| price_level.py | 6 | 0 | 100% | |
| projects.py | 6 | 0 | 100% | |
| subsidiaries.py | 6 | 0 | 100% | |
| tax_groups.py | 6 | 0 | 100% | |
| tax_items.py | 6 | 0 | 100% | |
| vendor_bills.py | 76 | 21 | 72% | 65–92, 119, 125, 128–132, 136 |
| vendor_payments.py | 46 | 1 | 98% | 41 |
| vendors.py | 21 | 0 | 100% | |
| netsuitesdk/errors |
| __init__.py | 0 | 0 | 100% | |
| errors.py | 2 | 0 | 100% | |
| helpers.py | 14 | 1 | 93% | 21 |
| parser.py | 27 | 17 | 37% | 11–29, 36–38 |
| netsuitesdk/internal |
| __init__.py | 0 | 0 | 100% | |
| client.py | 322 | 85 | 74% | 62–63, 75–77, 89, 130–131, 149–150, 163, 170–171, 178–179, 182–204, 226, 233–241, 261–264, 296, 301–307, 339, 342–345, 369, 371, 374–375, 396, 431–432, 437, 483–487, 503–507, 560–569, 618, 622, 628–632 |
| constants.py | 4 | 0 | 100% | |
| exceptions.py | 16 | 1 | 94% | 25 |
| netsuite_types.py | 2 | 0 | 100% | |
| utils.py | 40 | 4 | 90% | 34, 52, 63, 65 |
| TOTAL | 1055 | 151 | 86% | |
| Tests |
Skipped |
Failures |
Errors |
Time |
| 102 |
11 :zzz: |
12 :x: |
0 :fire: |
3m 48s :stopwatch: |