Skip to content

Commit 0519c84

Browse files
authored
Merge pull request #379 from NHSDigital/use-random-names-in-tests
Add children fixture to replace all fixed child names in tests
2 parents 96484f9 + 6082669 commit 0519c84

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+668
-533
lines changed

mavis/test/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
basic_auth,
1414
browser_context_args,
1515
browser_type,
16+
children,
1617
children_page,
1718
clinics,
1819
consent_page,
1920
consent_response_page,
2021
create_new_record_consent_response_page,
2122
dashboard_page,
23+
date_of_birth_for_year,
2224
download_school_moves_page,
2325
edit_batch_page,
2426
get_online_consent_url,
@@ -57,12 +59,14 @@
5759
"basic_auth",
5860
"browser_context_args",
5961
"browser_type",
62+
"children",
6063
"children_page",
6164
"clinics",
6265
"consent_page",
6366
"consent_response_page",
6467
"create_new_record_consent_response_page",
6568
"dashboard_page",
69+
"date_of_birth_for_year",
6670
"download_school_moves_page",
6771
"edit_batch_page",
6872
"get_online_consent_url",

mavis/test/data/__init__.py

Lines changed: 59 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
from pathlib import Path
22
from typing import List, Optional
33
from enum import Enum
4+
from faker import Faker
5+
46

57
import nhs_number
68
import pandas as pd
79
import re
810

9-
from ..models import Organisation, School, User
11+
from ..models import Organisation, School, User, Child
1012
from ..wrappers import (
1113
get_current_datetime,
1214
get_current_time,
@@ -114,10 +116,19 @@ class TestData:
114116
template_path = Path(__file__).parent
115117
working_path = Path("working")
116118

117-
def __init__(self, organisation: Organisation, schools: List[School], nurse: User):
119+
def __init__(
120+
self,
121+
organisation: Organisation,
122+
schools: List[School],
123+
nurse: User,
124+
children: List[Child],
125+
):
118126
self.organisation = organisation
119127
self.schools = schools
120128
self.nurse = nurse
129+
self.children = children
130+
131+
self.faker = Faker(locale="en_GB")
121132

122133
self.working_path.mkdir(parents=True, exist_ok=True)
123134

@@ -148,13 +159,20 @@ def create_file_from_template(
148159
if self.nurse:
149160
static_replacements["<<NURSE_EMAIL>>"] = self.nurse.username
150161

162+
if self.children:
163+
for index, child in enumerate(self.children):
164+
static_replacements[f"<<CHILD_{index}_FIRST_NAME>>"] = child.first_name
165+
static_replacements[f"<<CHILD_{index}_LAST_NAME>>"] = child.last_name
166+
static_replacements[f"<<CHILD_{index}_NHS_NO>>"] = child.nhs_number
167+
151168
for year_group in range(8, 12):
152-
static_replacements[f"<<DOB_YEAR_{year_group}>>"] = (
169+
static_replacements[f"<<DOB_YEAR_{year_group}>>"] = str(
153170
get_date_of_birth_for_year_group(year_group)
154171
)
155172

156173
file_content = self._replace_placeholders(
157-
template_path=template_path, static_replacements=static_replacements
174+
template_path=template_path,
175+
static_replacements=static_replacements,
158176
)
159177
filename = f"{file_name_prefix}{get_current_datetime()}.csv"
160178

@@ -164,28 +182,38 @@ def create_file_from_template(
164182
return output_path
165183

166184
def _replace_placeholders(
167-
self, template_path: Path, static_replacements: dict[str, str]
185+
self,
186+
template_path: Path,
187+
static_replacements: dict[str, str],
168188
) -> str:
169189
template_text = self.read_file(template_path)
170-
current_dt = get_current_datetime()
171-
172-
lines = []
173-
for index, line in enumerate(template_text.splitlines()):
174-
dynamic_replacements = {
175-
"<<FNAME>>": f"F{current_dt}{index}",
176-
"<<LNAME>>": f"L{current_dt}{index}",
177-
"<<NHS_NO>>": self.get_new_nhs_no(valid=True),
178-
"<<INVALID_NHS_NO>>": self.get_new_nhs_no(valid=False),
179-
"<<PARENT_EMAIL>>": f"{current_dt}{index}@example.com",
180-
}
181-
all_replacements = {**static_replacements, **dynamic_replacements}
182-
183-
for key, value in all_replacements.items():
184-
line = line.replace(key, str(value) if value else "")
185-
lines.append(line)
186190

191+
lines = [
192+
self._process_line(line, static_replacements)
193+
for line in template_text.splitlines()
194+
]
187195
return "\n".join(lines)
188196

197+
def _process_line(
198+
self,
199+
line: str,
200+
static_replacements: dict[str, str],
201+
) -> str:
202+
dynamic_replacements = {
203+
"<<RANDOM_FNAME>>": self.faker.first_name(),
204+
"<<RANDOM_LNAME>>": self.faker.last_name().upper(),
205+
"<<RANDOM_NHS_NO>>": self.get_new_nhs_no(valid=True),
206+
"<<INVALID_NHS_NO>>": self.get_new_nhs_no(valid=False),
207+
"<<PARENT_EMAIL>>": self.faker.email(),
208+
}
209+
all_replacements = {**static_replacements, **dynamic_replacements}
210+
return self._apply_replacements(line, all_replacements)
211+
212+
def _apply_replacements(self, line: str, replacements: dict[str, str]) -> str:
213+
for key, value in replacements.items():
214+
line = line.replace(key, str(value) if value else "")
215+
return line
216+
189217
def get_new_nhs_no(self, valid=True) -> str:
190218
return nhs_number.generate(
191219
valid=valid, for_region=nhs_number.REGION_ENGLAND, quantity=1
@@ -196,7 +224,9 @@ def get_expected_errors(self, file_path: Path) -> Optional[list[str]]:
196224
return file_content.splitlines() if file_content else None
197225

198226
def get_file_paths(
199-
self, file_mapping: FileMapping, session_id: Optional[str] = None
227+
self,
228+
file_mapping: FileMapping,
229+
session_id: Optional[str] = None,
200230
) -> tuple[Path, Path]:
201231
_input_file_path = self.create_file_from_template(
202232
template_path=file_mapping.input_template_path,
@@ -238,3 +268,10 @@ def normalize_whitespace(self, string: str) -> str:
238268
def get_session_id(self, path: Path) -> str:
239269
data_frame = pd.read_excel(path, sheet_name="Vaccinations")
240270
return data_frame["SESSION_ID"].iloc[0]
271+
272+
def increment_date_of_birth_for_records(self, file_path: Path):
273+
_file_df = pd.read_csv(file_path)
274+
_file_df["CHILD_DATE_OF_BIRTH"] = pd.to_datetime(
275+
_file_df["CHILD_DATE_OF_BIRTH"]
276+
) + pd.Timedelta(days=1)
277+
_file_df.to_csv(file_path, index=False)
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
TEST_DESC_IGNORED,CHILD_FIRST_NAME,CHILD_LAST_NAME,CHILD_SCHOOL_URN,CHILD_DATE_OF_BIRTH,CHILD_NHS_NUMBER,CHILD_GENDER,CHILD_ADDRESS_LINE_1,CHILD_ADDRESS_LINE_2,CHILD_TOWN,CHILD_POSTCODE,CHILD_REGISTRATION,PARENT_1_NAME,PARENT_1_RELATIONSHIP,PARENT_1_EMAIL,PARENT_1_PHONE,PARENT_2_NAME,PARENT_2_RELATIONSHIP,PARENT_2_EMAIL,PARENT_2_PHONE,CHILD_YEAR_GROUP
2-
TwoSpaces, C<<FNAME>> , C<<LNAME>> , <<SCHOOL_0_URN>> , 2010-01-01 , <<NHS_NO>> , Male , Addr1 , Addr2 , Town , AA1 1AA , 8T5 , Parent1 , Dad , dad@example.com , , Parent2 , Mum , mum@example.com , , 9
3-
Tabs, C<<FNAME>> , C<<LNAME>> , 888888 , 20110101 , <<NHS_NO>> , Male , Addr1 , Addr2 , Town , AA1 1AA , 8T5 , Parent1 , Dad , dad@example.com , , Parent2 , Mum , mum@example.com , , 9
4-
NBSP,C<<FNAME>>,C<<LNAME>>,999999, 20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Pa rent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
5-
ZWJ,C<<FNAME>>,C<<LNAME>>,<<SCHOOL_0_URN>>,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA11AA,8T5,‍Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,
2+
TwoSpaces, <<RANDOM_FNAME>> , <<RANDOM_LNAME>> , <<SCHOOL_0_URN>> , 2010-01-01 , <<RANDOM_NHS_NO>> , Male , Addr1 , Addr2 , Town , AA1 1AA , 8T5 , Parent1 , Dad , dad@example.com , , Parent2 , Mum , mum@example.com , , 9
3+
Tabs, <<RANDOM_FNAME>> , <<RANDOM_LNAME>> , 888888 , 20110101 , <<RANDOM_NHS_NO>> , Male , Addr1 , Addr2 , Town , AA1 1AA , 8T5 , Parent1 , Dad , dad@example.com , , Parent2 , Mum , mum@example.com , , 9
4+
NBSP,<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,999999, 20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Pa rent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
5+
ZWJ,<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA11AA,8T5,‍Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
CHILD_FIRST_NAME,CHILD_LAST_NAME,CHILD_SCHOOL_URN,CHILD_DATE_OF_BIRTH,CHILD_NHS_NUMBER,CHILD_GENDER,CHILD_ADDRESS_LINE_1,CHILD_ADDRESS_LINE_2,CHILD_TOWN,CHILD_POSTCODE,CHILD_REGISTRATION,PARENT_1_NAME,PARENT_1_RELATIONSHIP,PARENT_1_EMAIL,PARENT_1_PHONE,PARENT_2_NAME,PARENT_2_RELATIONSHIP,PARENT_2_EMAIL,PARENT_2_PHONE,CHILD_YEAR_GROUP
2-
,C<<LNAME>>,<<SCHOOL_0_URN>>,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
3-
C<<FNAME>>,,<<SCHOOL_0_URN>>,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
4-
C<<FNAME>>,C<<LNAME>>,,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
5-
C<<FNAME>>,C<<LNAME>>,<<SCHOOL_0_URN>>,,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
6-
C<<FNAME>>,C<<LNAME>>,<<SCHOOL_0_URN>>,20100101,19729852545,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
7-
C<<FNAME>>,C<<LNAME>>,<<SCHOOL_0_URN>>,20100101,729852545,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
8-
C<<FNAME>>,C<<LNAME>>,<<SCHOOL_0_URN>>,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,ABC DEF,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
9-
C<<FNAME>>,C<<LNAME>>,<<SCHOOL_0_URN>>,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,example.com,,Parent2,Mum,mum@example.com,,9
10-
C<<FNAME>>,C<<LNAME>>,<<SCHOOL_0_URN>>,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,example.com,,9
11-
C<<FNAME>>,C<<LNAME>>,<<SCHOOL_0_URN>>,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,19
12-
C<<FNAME>>,C<<LNAME>>,<<SCHOOL_0_URN>>,2010010‍‍ ‍1,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
2+
,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
3+
<<RANDOM_FNAME>>,,<<SCHOOL_0_URN>>,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
4+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
5+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
6+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,20100101,19729852545,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
7+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,20100101,729852545,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
8+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,ABC DEF,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
9+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,example.com,,Parent2,Mum,mum@example.com,,9
10+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,example.com,,9
11+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,19
12+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,2010010‍‍ ‍1,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
CHILD_FIRST_NAME,CHILD_LAST_NAME,CHILD_SCHOOL_URN,CHILD_DATE_OF_BIRTH,CHILD_NHS_NUMBER,CHILD_GENDER,CHILD_ADDRESS_LINE_1,CHILD_ADDRESS_LINE_2,CHILD_TOWN,CHILD_POSTCODE,CHILD_REGISTRATION,PARENT_1_NAME,PARENT_1_RELATIONSHIP,PARENT_1_EMAIL,PARENT_1_PHONE,PARENT_2_NAME,PARENT_2_RELATIONSHIP,PARENT_2_EMAIL,PARENT_2_PHONE,CHILD_YEAR_GROUP
2-
C<<FNAME>>,C<<LNAME>>,<<SCHOOL_0_URN>>,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
3-
C<<FNAME>>,C<<LNAME>>,888888,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
4-
C<<FNAME>>,C<<LNAME>>,999999,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
5-
C<<FNAME>>,C<<LNAME>>,<<SCHOOL_0_URN>>,20100101,<<NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,
2+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
3+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,888888,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
4+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,999999,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
5+
<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,<<SCHOOL_0_URN>>,20100101,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,AA1 1AA,8T5,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
CHILD_FIRST_NAME,CHILD_LAST_NAME,CHILD_PREFERRED_FIRST_NAME,CHILD_PREFERRED_LAST_NAME,CHILD_DATE_OF_BIRTH,CHILD_NHS_NUMBER,CHILD_GENDER,CHILD_ADDRESS_LINE_1,CHILD_ADDRESS_LINE_2,CHILD_TOWN,CHILD_REGISTRATION,CHILD_POSTCODE,PARENT_1_NAME,PARENT_1_RELATIONSHIP,PARENT_1_EMAIL,PARENT_1_PHONE,PARENT_2_NAME,PARENT_2_RELATIONSHIP,PARENT_2_EMAIL,PARENT_2_PHONE,CHILD_YEAR_GROUP
2-
CHANGENHSNO,CHANGENHSNO,,,<<DOB_YEAR_10>>,<<NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,10
2+
<<CHILD_0_FIRST_NAME>>,<<CHILD_0_LAST_NAME>>,,,<<DOB_YEAR_10>>,<<CHILD_0_NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,10
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
CHILD_FIRST_NAME,CHILD_LAST_NAME,CHILD_PREFERRED_FIRST_NAME,CHILD_PREFERRED_LAST_NAME,CHILD_DATE_OF_BIRTH,CHILD_NHS_NUMBER,CHILD_GENDER,CHILD_ADDRESS_LINE_1,CHILD_ADDRESS_LINE_2,CHILD_TOWN,CHILD_REGISTRATION,CHILD_POSTCODE,PARENT_1_NAME,PARENT_1_RELATIONSHIP,PARENT_1_EMAIL,PARENT_1_PHONE,PARENT_2_NAME,PARENT_2_RELATIONSHIP,PARENT_2_EMAIL,PARENT_2_PHONE,CHILD_YEAR_GROUP
2-
CFilter1,CFilter1,PrefFirst1,PrefLast1,20101101,<<NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
2+
<<CHILD_0_FIRST_NAME>>,<<CHILD_0_LAST_NAME>>,PrefFirst1,PrefLast1,20101101,<<CHILD_0_NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
TEST_DESC_IGNORED,CHILD_FIRST_NAME,CHILD_LAST_NAME,CHILD_PREFERRED_FIRST_NAME,CHILD_PREFERRED_LAST_NAME,CHILD_DATE_OF_BIRTH,CHILD_NHS_NUMBER,CHILD_GENDER,CHILD_ADDRESS_LINE_1,CHILD_ADDRESS_LINE_2,CHILD_TOWN,CHILD_REGISTRATION,CHILD_POSTCODE,PARENT_1_NAME,PARENT_1_RELATIONSHIP,PARENT_1_EMAIL,PARENT_1_PHONE,PARENT_2_NAME,PARENT_2_RELATIONSHIP,PARENT_2_EMAIL,PARENT_2_PHONE,CHILD_YEAR_GROUP
2-
TwoSpace, C<<FNAME>> , C<<LNAME>> , PrefFirst1 , PrefLast1 , <<DOB_YEAR_9>> , <<NHS_NO>> , Male , Addr1 , Addr2 , Town , 8T5 , AA1 1AA , Parent1 , Dad , dad@example.com , , Parent2 , Mum , mum@example.com , , 9
3-
Tabs, C<<FNAME>> , C<<LNAME>> , PrefFirst1 , PrefLast1 , <<DOB_YEAR_9>> , <<NHS_NO>> , Male , Addr1 , Addr2 , Town , 8T5 , AA1 1AA , Parent1 , Dad , dad@example.com , , Parent2 , Mum , mum@example.com , , 9
4-
NBSP,C<<FNAME>>,C<<LNAME>>,PrefFirst1,PrefLast1,<<DOB_YEAR_9>>,<<NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,Pa rent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
5-
ZWJ,C<<FNAME>>,C<<LNAME>>,PrefFirst1,PrefLast1,<<DOB_YEAR_9>>,<<NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,‍Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
2+
TwoSpace, <<RANDOM_FNAME>> , <<RANDOM_LNAME>> , PrefFirst1 , PrefLast1 , <<DOB_YEAR_9>> , <<RANDOM_NHS_NO>> , Male , Addr1 , Addr2 , Town , 8T5 , AA1 1AA , Parent1 , Dad , dad@example.com , , Parent2 , Mum , mum@example.com , , 9
3+
Tabs, <<RANDOM_FNAME>> , <<RANDOM_LNAME>> , PrefFirst1 , PrefLast1 , <<DOB_YEAR_9>> , <<RANDOM_NHS_NO>> , Male , Addr1 , Addr2 , Town , 8T5 , AA1 1AA , Parent1 , Dad , dad@example.com , , Parent2 , Mum , mum@example.com , , 9
4+
NBSP,<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,PrefFirst1,PrefLast1,<<DOB_YEAR_9>>,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,Pa rent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
5+
ZWJ,<<RANDOM_FNAME>>,<<RANDOM_LNAME>>,PrefFirst1,PrefLast1,<<DOB_YEAR_9>>,<<RANDOM_NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,‍Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
CHILD_FIRST_NAME,CHILD_LAST_NAME,CHILD_PREFERRED_FIRST_NAME,CHILD_PREFERRED_LAST_NAME,CHILD_DATE_OF_BIRTH,CHILD_NHS_NUMBER,CHILD_GENDER,CHILD_ADDRESS_LINE_1,CHILD_ADDRESS_LINE_2,CHILD_TOWN,CHILD_REGISTRATION,CHILD_POSTCODE,PARENT_1_NAME,PARENT_1_RELATIONSHIP,PARENT_1_EMAIL,PARENT_1_PHONE,PARENT_2_NAME,PARENT_2_RELATIONSHIP,PARENT_2_EMAIL,PARENT_2_PHONE,CHILD_YEAR_GROUP
2-
MAV_854,Mav_854,,,20101101,<<NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
2+
<<CHILD_0_FIRST_NAME>>,<<CHILD_0_LAST_NAME>>,,,20101101,<<CHILD_0_NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,9
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
CHILD_FIRST_NAME,CHILD_LAST_NAME,CHILD_PREFERRED_FIRST_NAME,CHILD_PREFERRED_LAST_NAME,CHILD_DATE_OF_BIRTH,CHILD_NHS_NUMBER,CHILD_GENDER,CHILD_ADDRESS_LINE_1,CHILD_ADDRESS_LINE_2,CHILD_TOWN,CHILD_REGISTRATION,CHILD_POSTCODE,PARENT_1_NAME,PARENT_1_RELATIONSHIP,PARENT_1_EMAIL,PARENT_1_PHONE,PARENT_2_NAME,PARENT_2_RELATIONSHIP,PARENT_2_EMAIL,PARENT_2_PHONE,CHILD_YEAR_GROUP
2-
MAV_965,MAV_965,,,<<DOB_YEAR_10>>,<<NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,10
2+
<<CHILD_0_FIRST_NAME>>,<<CHILD_0_LAST_NAME>>,,,<<DOB_YEAR_10>>,<<CHILD_0_NHS_NO>>,Male,Addr1,Addr2,Town,8T5,AA1 1AA,Parent1,Dad,dad@example.com,,Parent2,Mum,mum@example.com,,10

0 commit comments

Comments
 (0)