
== The python/ directory ==
module/ contains the hawkey.test module used for testing Python bindings of hawkey and its Python clients.

tests/ contains the unit tests themselves.

== The repos/ directory ==
This directory contains sample package data for testing. It is crucial to
maintain integrity of packages as described by the .repo files, for instance the
same (equal NEVRA) package present in two different repos needs to keep the same
provides and requires at both places.

The goal is to have as few packages as possible, ideally one or two per a
specific testing role they can play:

flying
* installed at a version older than anything from repositories
* there's one updated version with different arch than the installed
* the latest available version is not installable

fool
* installed version available from main repo, updates repo contains a newer version
* the updates version obsoletes two packages
* installonly testing

penny, penny-lib
* have summaries
* installed in the highest available version
* penny-lib is architecture dependent
* 'penny-lib' provides 'P-lib' that 'flying' needs, so it can not be removed by itself.

walrus
* not installed, available in the main repo, update available in updates
* requires two packages

semolina
* for multilib install testing

pilchard
* for selector upgrade testing

hello
* depends on 'goodbye' which is not provided by anything else

jay
* installed twice, not updatable from main.
* downgrade available from main.

baby
* installed at a version newer than anything available (downgrade, distupgrade testing)
* has epoch (testing evr parsing)

foolish-grin
* in the "vendor" repo, for testing vendor change

gun
* installed only in the i686 version
* higher version of x86_64 arch is available in "vendor" repo (distupgrade doesn't replace it)
* testing forcebest/arches interaction

pigs, tour
* testing file reqiures
* tour is available as a command-line .rpm too

dodo, dodo-dep-a, dodo-dep-b
* testing favor/disfavor

bloop, bloop-ext
* bloop-1.0 installed, bloop-ext-1.0 and *-2.0 in updates
* for testing package locking

=== repos/yum ===

To test loading of yum repos we need an actual yum repo. It currently consists
of two packages ("mystery", "tour") and generated repodata. The specfiles are
included, all the package payload is generated in them. To rebuild them, e.g.:

  rpmbuild -bb tour.spec

If things change in these packages the respective changes need to be made in the
unit tests too for them to pass.

The command to do the metadata rebuild from hawkey/tests/repos/yum:

  createrepo --deltas --oldpackagedirs=../yum_oldrpms/ --no-database .

Or use the 'recreate' script in the directory.
