def test_make_template(self): t_map = KeyTemplate(self.key_cols) stern_df = pd.read_csv(self.stern_map_path, delimiter='\t', header=0) t_map.update(stern_df) df1 = t_map.make_template() self.assertIsInstance(df1, pd.DataFrame, "make_template should return a DataFrame") self.assertEqual( len(df1.columns), 1, "make_template should return 1 column single key, no additional columns" ) t_map2 = KeyTemplate(['event_type', 'type']) t_map2.update(self.stern_map_path) df2 = t_map2.make_template() self.assertIsInstance(df2, pd.DataFrame, "make_template should return a DataFrame") self.assertEqual( len(df2.columns), 2, "make_template should return 2 columns w 2 keys, no additional columns" ) df3 = t_map2.make_template(['bananas', 'pears', 'apples']) self.assertIsInstance(df3, pd.DataFrame, "make_template should return a DataFrame") self.assertEqual( len(df3.columns), 5, "make_template should return 5 columns w 2 keys, 3 additional columns" )
def test_make_template_key_overlap(self): t_map = KeyTemplate(['event_type', 'type']) t_map.update(self.stern_map_path) try: t_map.make_template(['Bananas', 'type', 'Pears']) except HedFileError: pass except Exception as ex: self.fail( f'make_template threw the wrong exception {ex} when additional columns overlapped keys' ) else: self.fail( 'KeyTemplate should have thrown a HedFileError exception when key overlap but threw none' )