Large-scale API cleanup
commit56f113822de379b30d570e8306e43a9f6664c408
authorThomas Leonard <talex5@gmail.com>
Sat, 15 Jan 2011 20:03:16 +0000 (15 20:03 +0000)
committerThomas Leonard <talex5@gmail.com>
Mon, 17 Jan 2011 08:34:50 +0000 (17 08:34 +0000)
tree51a8035a0e61a81fc22251fc086393d5424bef27
parent1c36200cbc118caf11ba77812bd2304634e08cee
Large-scale API cleanup

Added a Requirements object to hold information about what the user wants (e.g.
source code, binary, OS, version restrictions). This allows code that parses options
to be shared (e.g. between the command-line and the GUI option parsing) and allows
requirements to be passed around more easily.

Added a Config object to store user preferences. This is also used to get hold of
various singletons such as the iface_cache, stores, fetcher, etc. Objects that need
these things now take a 'config' argument.

There are some backwards compatibility hacks to try and keep old users of the API
working for the time being. These will eventually go away.

Added unit-tests for 0install and all its sub-commands, and fixed various bugs
they found.
53 files changed:
tests/basetest.py
tests/testarch.py
tests/testautopolicy.py
tests/testdownload.py
tests/testifacecache.py
tests/testinstall.py [new file with mode: 0755]
tests/testlaunch.py
tests/testmanifest.py
tests/testmodel.py
tests/testpolicy.py
tests/testreader.py
tests/testrun.py
tests/testsat.py
tests/testselections.py
tests/testsolver.py
tests/testwriter.py
zeroinstall/0launch-gui/bugs.py
zeroinstall/0launch-gui/combo_compat.py [deleted file]
zeroinstall/0launch-gui/compile.py
zeroinstall/0launch-gui/freshness.py
zeroinstall/0launch-gui/gui.py
zeroinstall/0launch-gui/iface_browser.py
zeroinstall/0launch-gui/main.py
zeroinstall/0launch-gui/mainwindow.py
zeroinstall/0launch-gui/preferences.py
zeroinstall/0launch-gui/properties.py
zeroinstall/cmd/__init__.py
zeroinstall/cmd/add_feed.py
zeroinstall/cmd/config.py
zeroinstall/cmd/download.py
zeroinstall/cmd/import.py
zeroinstall/cmd/run.py
zeroinstall/cmd/select.py
zeroinstall/cmd/update.py
zeroinstall/gtkui/icon.py
zeroinstall/helpers.py
zeroinstall/injector/autopolicy.py
zeroinstall/injector/background.py
zeroinstall/injector/cli.py
zeroinstall/injector/distro.py
zeroinstall/injector/fetch.py
zeroinstall/injector/handler.py
zeroinstall/injector/iface_cache.py
zeroinstall/injector/model.py
zeroinstall/injector/policy.py
zeroinstall/injector/reader.py
zeroinstall/injector/requirements.py [new file with mode: 0644]
zeroinstall/injector/run.py
zeroinstall/injector/sat.py
zeroinstall/injector/selections.py
zeroinstall/injector/solver.py
zeroinstall/support/tasks.py
zeroinstall/zerostore/__init__.py