@@ -676,7 +676,8 @@ func (l *Loader) fixturesFromDir(dir string) ([]*fixtureFile, error) {
676676 if err != nil {
677677 return nil , fmt .Errorf (`testfixtures: could not read file "%s": %w` , fixture .path , err )
678678 }
679- if err := l .processFileTemplate (fixture ); err != nil {
679+ fixture .content , err = l .preProcessContent (fixture .fileName , fixture .content )
680+ if err != nil {
680681 return nil , err
681682 }
682683 files = append (files , fixture )
@@ -700,7 +701,8 @@ func (l *Loader) fixturesFromFiles(fileNames ...string) ([]*fixtureFile, error)
700701 if err != nil {
701702 return nil , fmt .Errorf (`testfixtures: could not read file "%s": %w` , fixture .path , err )
702703 }
703- if err := l .processFileTemplate (fixture ); err != nil {
704+ fixture .content , err = l .preProcessContent (fixture .fileName , fixture .content )
705+ if err != nil {
704706 return nil , err
705707 }
706708 fixtureFiles = append (fixtureFiles , fixture )
@@ -751,7 +753,7 @@ func (l *Loader) fixturesFromFilesMultiTables(fileNames ...string) ([]*fixtureFi
751753 return nil , fmt .Errorf (`testfixtures: could not read file "%s": %w` , f , err )
752754 }
753755
754- content , err = l .processTemplate ( content )
756+ content , err = l .preProcessContent ( f , content )
755757 if err != nil {
756758 return nil , err
757759 }
@@ -787,33 +789,22 @@ func (l *Loader) fixturesFromFilesMultiTables(fileNames ...string) ([]*fixtureFi
787789 return fixtureFiles , nil
788790}
789791
790- func (l * Loader ) processFileTemplate ( f * fixtureFile ) error {
792+ func (l * Loader ) preProcessContent ( name string , content [] byte ) ([] byte , error ) {
791793 if ! l .template {
792- return nil
793- }
794-
795- var err error
796- f .content , err = l .processTemplate (f .content )
797- if err != nil {
798- return fmt .Errorf (`textfixtures: error on parsing template in %s: %w` , f .fileName , err )
794+ return content , nil
799795 }
800-
801- return nil
802- }
803-
804- func (l * Loader ) processTemplate (content []byte ) ([]byte , error ) {
805796 t := template .New ("" ).
806797 Funcs (l .templateFuncs ).
807798 Delims (l .templateLeftDelim , l .templateRightDelim ).
808799 Option (l .templateOptions ... )
809800 t , err := t .Parse (string (content ))
810801 if err != nil {
811- return nil , err
802+ return nil , fmt . Errorf ( `textfixtures: error on parsing template in %s: %w` , name , err )
812803 }
813804
814805 var buffer bytes.Buffer
815806 if err := t .Execute (& buffer , l .templateData ); err != nil {
816- return nil , err
807+ return nil , fmt . Errorf ( `textfixtures: error on execute template in %s: %w` , name , err )
817808 }
818809
819810 return buffer .Bytes (), nil
0 commit comments