
## TL;DR

The scripts found `0` Vendor, Subaccount, or CompanyBrand nodes with invalid IDs or UUIDs. 
View [PP-434](https://theorchard.atlassian.net/browse/PP-434) for more infomation.

## To run

```
$ make env
$ make data
$ source env/bin/activate
$ python3 main.py
```


## Data

* `data.tar.gz`: Archive with exported data from Neo4J

The archive contains:
* `data/qa`:    Vendor, Subaccount, CompanyBrand exported data from qa.
* `data/prod`:  Vendor, Subaccount, CompanyBrand exported data from production.

### Queries to export the data

See the source: [main.py](./main.py)

## Output

The scripts found `0` Vendor, Subaccount, or CompanyBrand nodes with invalid IDs or UUIDs. The only "false positive"
was the `Vendor("*"`)` node with an ID that isn't a valid number.

```text
 ====== QA ======

--- Rows with invalid IDs ---
{
  "v.id":{
    "0":"*"
  },
  "v.uuid":{
    "0":"053a1a75-acc5-4cd8-9206-a194335d2afa"
  }
}
------------

[vendor_export_01.csv] 0 invalid uuids, 1 invalid ids
[vendor_export_02.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_03.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_04.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_05.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_06.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_07.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_08.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_09.csv] 0 invalid uuids, 0 invalid ids



[subaccount_export_01.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_02.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_03.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_04.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_05.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_06.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_07.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_08.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_09.csv] 0 invalid uuids, 0 invalid ids



[company_brand_uuid_export.csv] 0 invalid uuids, 0 invalid ids


 ====== PROD ======

--- Rows with invalid IDs ---
{
  "v.id":{
    "0":"*"
  },
  "v.uuid":{
    "0":"053a1a75-acc5-4cd8-9206-a194335d2afa"
  }
}
------------

[vendor_export_01.csv] 0 invalid uuids, 1 invalid ids
[vendor_export_02.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_03.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_04.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_05.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_06.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_07.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_08.csv] 0 invalid uuids, 0 invalid ids
[vendor_export_09.csv] 0 invalid uuids, 0 invalid ids



[subaccount_export_01.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_02.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_03.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_04.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_05.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_06.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_07.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_08.csv] 0 invalid uuids, 0 invalid ids
[subaccount_export_09.csv] 0 invalid uuids, 0 invalid ids



[company_brand_uuid_export.csv] 0 invalid uuids, 0 invalid ids
```


## Run Self-Test Mode
Sanity check that the script catches known error cases.

```bash
$ python3 main.py --test
```