Bug 10096, which introduces a feature to import authority records via Z39.50, also introduces some code duplication.
To summarize the differences:
- z3950_search.pl and z3950_auth_search.pl differ only in the input search attributes they accept
- C4::Breeding::ImportBreeding() and C4::Breeding::ImportAuth() do mostly the same thing
- the actual search logic in C4::Breeding::Z3950SearchAuth() and C4::Breeding::Z3950Search() is the same; the two routines differ only in the specific Z39.50 attributes they handle and in some details of post-retrieval record processing. Also, Z3950SearchAuth() does not reflect the work that was done for bug 10462.
Consequently, there is plenty of opportunity for code consolidation, as well as adding unit tests.
Note that as of the patch for bug 10462, ImportBreeding() actually does nothing. Bug 12112 calls for that routine to removed, and I'm setting it as a dependency for this bug.