diff --git a/tests/scripts/generate_test_keys.py b/tests/scripts/generate_test_keys.py
index 177850e..62b7560 100755
--- a/tests/scripts/generate_test_keys.py
+++ b/tests/scripts/generate_test_keys.py
@@ -6,7 +6,7 @@
 """Module generating EC and RSA keys to be used in test_suite_pk instead of
 generating the required key at run time. This helps speeding up testing."""
 
-from typing import Iterator, List
+from typing import Iterator, List, Tuple
 import re
 import argparse
 import scripts_path # pylint: disable=unused-import
@@ -90,7 +90,7 @@
     yield "      {0}, sizeof({0}) }},".format(pub_array_name)
 
 
-def write_output_file(output_file_name: str, arrays: List[str], look_up_table: List[str]):
+def write_output_file(output_file_name: str, arrays: str, look_up_table: str):
     with open(output_file_name, 'wt') as output:
         output.write("""\
 /*********************************************************************************
@@ -98,7 +98,7 @@
  * Please do not edit it manually.
  *********************************************************************************/
 """)
-        output.write(''.join(arrays))
+        output.write(arrays)
         output.write("""
 struct predefined_key_element {{
     int group_id;  // EC group ID; 0 for RSA keys
@@ -114,18 +114,15 @@
 }};
 
 /* End of generated file */
-""".format("\n".join(look_up_table)))
+""".format(look_up_table))
 
-
-def main() -> None:
-    default_output_path = guess_project_root() + "/tests/src/test_keys.h"
-
-    argparser = argparse.ArgumentParser()
-    argparser.add_argument("--output", help="Output file", default=default_output_path)
-    args = argparser.parse_args()
-
-    output_file = args.output
-
+def collect_keys() -> Tuple[str, str]:
+    """"
+    This function reads key data from ASYMMETRIC_KEY_DATA and, only for the
+    keys supported in legacy ECP/RSA modules, it returns 2 strings:
+    - the 1st contains C arrays declaration of these keys and
+    - the 2nd contains the final look-up table for all these arrays.
+    """
     arrays = []
     look_up_table = []
 
@@ -169,6 +166,19 @@
             look_up_table.append(''.join(get_look_up_table_entry(key_type, group_id_or_keybits,
                                                                  array_name_priv, array_name_pub)))
 
+    return ''.join(arrays), '\n'.join(look_up_table)
+
+def main() -> None:
+    default_output_path = guess_project_root() + "/tests/src/test_keys.h"
+
+    argparser = argparse.ArgumentParser()
+    argparser.add_argument("--output", help="Output file", default=default_output_path)
+    args = argparser.parse_args()
+
+    output_file = args.output
+
+    arrays, look_up_table = collect_keys()
+
     write_output_file(output_file, arrays, look_up_table)
 
 if __name__ == '__main__':
