2010-09-12  Loic Dachary <loic@dachary.org>

 	* Release 2.0.0

	* tests/test-pokeravatar.py.in: modify
	  preparePlayerForTablePickerSend calls to take into account the
	  fact that they create a client
	* tests/test-pokeravatar.py.in: remove
	  test12_tablePicker_twoPossibleGivesMostFullWithSeatsButNotFullOne
	  because it is redundant with
	  test07_tablePicker_shouldNotPickFullTableEvenIfPlayerSitsOut
	* tests/test-pokeravatar.py.in: modify
	  test11_tablePicker_failureFromTableCannotAddPlayer to not use
	  DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: modify
	  test10_tablePicker_sitOutCausesNoMatchesFound to not use
	  DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: modify
	  test09_tablePicker_noTableDueToLackofFunds to not use
	  DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: modify
	  test08_tablePicker_failureBecauseAllTablesMeetingCriteriaAreFull
	  to not use DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: modify
	  test07_tablePicker_shouldNotPickFullTableEvenIfPlayerSitsOut to
	  not use DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: modify
	  test06_tablePicker_shouldNoticeWhenSitOutMakesTableBadChoice to
	  not use DeferredList to avoid race conditions. Reimplement test
	  to sitout two players from the second table instead of just one
	  at the first so that there is a noticeable side effect. The
	  result is different from test04.
	* tests/test-pokeravatar.py.in: modify
	  test04_tablePicker_twoPossibleGivesMostFullWithSeats to not use
	  DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: modify
	  test03_tablePicker_onlyOnePossible to not use DeferredList to
	  avoid race conditions
	* tests/test-pokeravatar.py.in: modify
	  test76_forceObserverDisconnectPacketQueue to not use DeferredList
	  to avoid race conditions
	* tests/test-pokeravatar.py.in: modify
	  test75_playerSitsBrieflyThenOut to not use DeferredList to avoid
	  race conditions
	* tests/test-pokeravatar.py.in: modify
	  test74_tooManyPacketsGrowOnObserver to not use DeferredList to
	  avoid race conditions
	* tests/test-pokeravatar.py.in: modify
	  test73_playerTimeoutAndThenViewsQueuedPackets to not use
	  DeferredList to avoid race conditions

2010-09-10  Loic Dachary <loic@dachary.org>

	* tests/test-pokeravatar.py.in: modify test63_newObserver to not
	  use DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: in test44/test45 the first player
	  must no be autoblind
	* tests/test-pokeravatar.py.in: modify test47_startPackets to not
	  use DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: additional argument to
	  beginHandSetup to control the number of packets when autoDeal is
	  set for all players and when it's not
	* tests/test-pokeravatar.py.in: modify
	  test45_possibleObserverLoggedInWithAnte to not use DeferredList
	  to avoid race conditions
	* tests/test-pokeravatar.py.in: test15_handPlay was missing the
	  stats table creation, removed by accident
	* tests/test-pokeravatar.py.in: modify
	  test44_possibleObserverLoggedIn to not use DeferredList to avoid
	  race conditions
	* tests/test-pokeravatar.py.in: modify test39_tablePlayerList to
	  not use DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: modify test23_quitPlayerInHand to
	  not use DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: modify test22_sitOutClosedGame to
	  not use DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: modify test15_handPlay and
	  test15a_handPlay_dbLocalesAndOverridesThereof to not use
	  DeferredList to avoid race conditions
	* tests/test-pokeravatar.py.in: Add createClient function that
	  returns the index of the created client. It is sometime more
	  convenient to create a client only once another has finished some
	  action. In these cases most tests use deferredList which does not
	  guarantee that the first callbackchain of the list will be
	  completed first. This creates race conditions and random
	  failures.

2010-09-08  Loic Dachary <loic@dachary.org>

	* tests/Makefile.am: pokerdisplay2d/game no longer exists
	* tests/Makefile.am: tests/test-bug-14139.py is osboleted
	* tests/Makefile.am: tests/test-bug-14139.py is osboleted
	* configure.ac: tests/test-bug-14139.py is osboleted
	* tests/Makefile.am, tests/test-bug-14139.py.in: the bug#14139 is
	  fixed and the test still fails, get rid of the bugous test. The
	  fix is otherwise tested in test-pokeravatar.py
	* ChangeLog: *** empty log message ***
	* debian/control: lower requirements on poker-engine to 1.3.5
	* debian/changelog: ucf --purge /etc/poker-web/constants.php must
	  be in prerm (Closes: #586756) has been closed by 1.7.7-2 upload
	  already
	* debian/control.unstable: control and control.unstable are the
	  same

2010-09-07  Loic Dachary <loic@dachary.org>

	* configure.ac: implement fallback for when poker-engine 1.3.5 is
	  available instead of 1.3.6
	* debian/rules: move debian/stamp-autotools-configure target to the
	  end of the file to prevent overriding the rule
	* debian/rules: add $(DEB_SRCDIR)/configure::
	  $(DEB_SRCDIR)/configure.ac

2010-09-05  Loic Dachary <loic@dachary.org>

	* debian/control: twisted versions older than 8.* are unsupported
	* pokernetwork/pokertable.py: assert that the history does not
	  change unexpectedly before reducing it

2010-09-04  Loic Dachary <loic@dachary.org>

	* debian/poker-web.postrm, debian/poker-web.prerm: ucf --purge
	  /etc/poker-web/constants.php must be in prerm

2010-04-13  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokeravatar.py, pokernetwork/pokerpackets.py,
	  tests/test-pokeravatar.py.in, tests/test-protocol.py.in:
	  POKER_POLL and TOURNEY_FINISH packets are obsoleted by long poll
	  and centralized sessions

2010-04-06  Loic Dachary <loic@dachary.org>

	* debian/python-poker-network.init: fix insserv dependencies
	* debian/python-poker-network.init: option --quiet is no longer
	  supported in twisted-10
	* debian/control.squeeze: squeeze support

2010-03-30  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py, pokernetwork/pokerrestclient.py,
	  tests/test-pokeravatar.py.in: disable longPoll when clearing
	  pokeravatar restclients on destroy

2010-03-30  Loic Dachary <loic@dachary.org>

	* debian/control.unstable: control must be the same as
	  control.unstable

2010-03-29  Loic Dachary <loic@dachary.org>

	* debian/control: build depends on poker-engine 1.3.6 for the
	  definition of pkgdatadir

2010-03-25  Johan Euphrosine <proppy@aminche.com>

	* twisted/plugins/pokerbot_plugin.py,
	  twisted/plugins/pokerserver_plugin.py: add missing twisted
	  plugins
	* configure.ac, tests/conf/poker.bot.xml.in,
	  tests/conf/poker.server.xml.in, tests/test-bug-14139.py.in,
	  tests/test-leak-no-trial.py.in, tests/test-leak.py.in,
	  tests/test-pokerauth.py.in, tests/test-pokeravatar.py.in,
	  tests/test-pokerclient.py.in, tests/test-pokerrestclient.py.in,
	  tests/test-pokerserver-run-load.py.in,
	  tests/test-pokerserver.py.in, tests/test-pokerservice.py.in,
	  tests/test-pokertable.py.in, tests/test-proxyfilter.py.in,
	  tests/test-servercrash.py.in,
	  tests/test-sessionproxyfilter.py.in,
	  tests/test-tourneytablebalance.py.in,
	  tests/test-webservice.py.in: fix poker-network test suite: use
	  @POKER_ENGINE_PKGDATADIR@/conf instead o f
	  @POKER_ENGINE_PKGSYSCONFDIR@, fix typo, remove obsolete test

2010-03-22  Johan Euphrosine <proppy@aminche.com>

	* Makefile.am, conf/poker.bot.xml.in, configure.ac,
	  debian/python-poker-network.init,
	  pokernetwork/pokerauthnopassword.py, pokernetwork/pokerbot.py,
	  pokernetwork/pokerserver.py, tests/Makefile.am,
	  tests/test-pokerbot.py.in,
	  twisted/plugins/pokernetwork_plugin.py: add support for named bot
	  convert pokerbot script into a twisted plugin
	  fix pokerserver imports
	  add 'nopassword' auth

2010-03-11  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokertable.py, tests/test-pokertable.py.in:
	  pokertable.movePlayer should copy avatars list bug#15489

2010-03-05  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokertable.py, tests/test-pokertable.py.in: add
	  serial argument to seated2observer, and log error if not matching
	  avatar serial bug#14934

2010-02-25  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokerpackets.py, pokernetwork/pokerservice.py,
	  tests/test-pokerservice.py.in: add TOURNEY_START event in monitor
	  bug#15482

2010-02-23  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in:
	  pokeravatar.disconnect should cancel restclients bug#15384
	* pokernetwork/pokertable.py, tests/test-pokertable.py.in:
	  pokertable.rejoin should use updated auto flag bug#14797

2010-02-18  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  pokerservice should only cancel tourney not in registering state
	  bug#14112

2010-02-18  Loic Dachary <loic@dachary.org>

	* Makefile.am: Add upgrades/poker.server/1.7.5-2.0.0.xsl to
	  distribution

2010-02-16  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokersite.py, tests/test-pokersite.py.in:
	  pokersite.checkExpired should not expire overwritten sessions bug
	  #13717
	* pokernetwork/pokertable.py, tests/test-pokertable.py.in:
	  pokertable.destroy should cancelDealTimeout bug#13784

2010-02-11  Loic Dachary <loic@dachary.org>

	* debian/rules: remove useless and non portable dependency (meant
	  for packaging-farm)

2010-02-11  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in:
	  PacketPokerLongPollReturn should not returns queued packet
	  bug#15335

2010-01-25  Loic Dachary <loic@dachary.org>

	* debian/control: do not depend on python-all-dev as there no
	  longer is any C modules in poker-network
	* debian/lintian, debian/lintian/poker-web,
	  debian/lintian/python-poker-prizes,
	  debian/lintian/python-poker-stats: add overrides for warnings
	  related to nusoap include and missing templates in
	  poker-prizes/stats
	* pokerweb/Makefile.am, pokerweb/pages/prototype.js: remove unused
	  prototype.js
	* debian/control, debian/control.unstable: dont depend on coreutil
	  in sid
	* tests/test-pokersite.py.in: in twisted-9.0 the notifyFinish
	  callbacks are only called if the request is not queued. Set the
	  queued data member of each request to zero before returning the
	  deferred so that the pokersite request.finish() calls the test
	  callback as expected.
	* debian/rules: config.status depends on cdbs stamp for
	  compatibility with newer cdbs versions
	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in: for
	  client to be able to choose between buyin and rebuy.

2010-01-19  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokerexplain.py, tests/test-pokerexplain.py.in:
	  explain should not set userData if game.addPlayer failed,
	  bug#15044
	* pokernetwork/pokersite.py, tests/test-pokersite.py.in:
	  checkExpired should noop for already expired session, bug#13717

2010-01-19  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: fix typo

2010-01-12  Johan Euphrosine <proppy@aminche.com>

	* tests/test-pokersite.py.in: persistSession should not set
	  memcache entry if avatar has no explain bug#14838
	* pokernetwork/sessionproxyfilter.py,
	  tests/test-sessionproxyfilter.py.in: add election of explain
	  resthost by sessionproxyfilter bug#15008
	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in: add
	  support for resthost name in pokerservice bug#15008
	* pokernetwork/pokermemcache.py, pokernetwork/pokersite.py,
	  tests/test-pokermemcache.py.in,
	  tests/test-sessionproxyfilter.py.in: persistSession should not
	  override other resthosts memcache entry bug#14883

2009-12-29  Johan Euphrosine <proppy@aminche.com>

	* tests/test-sessionproxyfilter.py.in: remove print form
	  test-sessionproxyfilter.py.in

2009-12-18  Johan Euphrosine <proppy@aminche.com>

	* debian/control, debian/control.unstable: remove python-xml,
	  obsolete dependency on debian unstable
	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in:
	  LongPollReturn set flush_next_longpoll flag, if not LongPoll is
	  pending bug#14963

2009-12-16  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in: avatar
	  should only be removed from the game when it is the last avatar
	  bug#14935

2009-12-10  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in: set
	  avatarSavedUnder to None if _ is not defined bug #14912

2009-12-10  Loic Dachary <loic@dachary.org>

	* tests/test-pokerclient.py.in: remove overrides of timeout that
	  are smaller than 500
	* tests/test-pokeravatar.py.in: set timeout = 500 for all test
	  classes so that when the connection to 127.0.0.1 adds a little
	  delay the test does not automatically fail because the default
	  timeout expires even before the connection is made. This
	  connection is the only time dependent operation of the tests and
	  cannot be controled.
	* tests/test-pokerclient.py.in: set timeout = 500 for all test
	  classes so that when the connection to 127.0.0.1 adds a little
	  delay the test does not automatically fail because the default
	  timeout expires even before the connection is made. This
	  connection is the only time dependent operation of the tests and
	  cannot be controled.
	* tests/test-pokerrestclient.py.in: The callback argument of the
	  PokerRestClient constructor must be None to prevent the long poll
	  timer to run.

2009-12-09  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py: revert r6330 because it breaks
	  coverage bug#14912
	* pokernetwork/pokeravatar.py: set avatarSavedUnder to None if _ is
	  not defined bug#14912

2009-12-04  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in:
	  pokeravatar.incomingDistributedPacket should not reset packets
	  queue if called from longPollCallback (bug: #14645)
	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in:
	  pokeravatar should queue packets before handling long poll
	* pokernetwork/pokeravatar.py, pokernetwork/pokersite.py,
	  tests/test-pokeravatar.py.in, tests/test-pokersite.py.in:
	  pokersite and pokeravatar should not discard
	  avatar/session/restclient if explain has games (bug: #14726)
	* pokernetwork/pokerexplain.py, tests/test-pokerexplain.py.in:
	  PokerExplain should delete game when player leave (bug: #14721)

2009-11-24  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokertable.py, tests/test-pokertable.py.in:
	  pokertable.muckTimeoutTimer should copy mutable
	  game.muckable_serials before looping (bug #13898)

2009-11-24  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: remove obsolete comment from
	  PacketPokerPlayersList documentation

2009-10-30  Johan Euphrosine <proppy@aminche.com>

	* debian/python-poker-network.install,
	  debian/python-poker-prizes.install,
	  debian/python-poker-stats.install: apply
	  poker-network_1.7.4-2ubuntu1.patch

2009-10-29  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py, pokernetwork/pokerrestclient.py,
	  tests/test-pokeravatar.py.in, tests/test-pokerrestclient.py.in:
	  pokerrestclient should scheduleLongPoll instead of longPoll in
	  __init__, pokerrestclient should not scheduleLongPoll when
	  handling tourney packets, pokeravatar should clear timer when
	  cleaning up pokerrestclient

2009-10-28  Loic Dachary <loic@dachary.org>

	* tests/test-pokeravatar.py.in, tests/test-pokerservice.py.in:
	  cancel the long poll timer

2009-10-23  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in:
	  longPollReturn should cancel longPollTimer, longPollTimeout
	  should call _longpoll_deferred with pending packets
	* conf/poker.server.xml.in, pokernetwork/pokeravatar.py,
	  pokernetwork/pokerservice.py, tests/test-pokeravatar.py.in,
	  upgrades/poker.server/1.7.5-2.0.0.xsl: add long_poll_timeout

2009-10-21  Johan Euphrosine <proppy@aminche.com>

	* debian/python-poker-network.init: use distutils instead of
	  hardcoded /usr/lib/python/site-packages/ to compute
	  python_lib_path in python-poker-network init script
	* debian/control.karmic: provides debian/control.karmic file for
	  Ubuntu karmic, removes python-xml from Build-Depends

2009-10-13  Loic Dachary <loic@dachary.org>

	* tests/test-pokersite.py.in: test the type checking of the
	  getSession function on the uid / auth arguments
	* tests/test-pokersite.py.in: session must be created
	* tests/test-pokersite.py.in: getSession has an additional argument
	  for explain
	* ChangeLog: *** empty log message ***
	* pokernetwork/pokeravatar.py, pokernetwork/pokersite.py,
	  tests/test-pokeravatar.py.in, tests/test-pokersite.py.in: the uid
	  & auth args are set when a request is distributed by the avatar
	  to other servers

2009-10-12  Loic Dachary <loic@dachary.org>

	* tests/testmessages.py: control verbosity of pokerrestclient
	  classes
	* tests/test-pokerrestclient.py.in: add explain=no to each path
	* pokernetwork/pokersite.py: add a message displaying the packets
	  returned
	* pokernetwork/pokerrestclient.py: improve verbosity
	* pokernetwork/pokerlock.py: message on a separate line
	* conf/poker.server.xml.in: change the example to reflect the new
	  sessionproxyfilter
	* pokernetwork/pokeravatar.py, pokernetwork/pokersite.py,
	  tests/test-pokersite.py.in: The explain argument to the
	  POKER_REST end point allows to control the activation of the
	  explain mode. If explain is not set or if it is set to "yes",
	  then the session avatar is in explain mode. If explain is set to
	  "no", then the session avatar is not in explain mode. (bug
	  #14504)

2009-10-09  Loic Dachary <loic@dachary.org>

	* tests/test-pokerlock.py.in: create locker2 after locker is
	  acquired to prevent race condition that could change the ordering
	  of output messages
	* pokernetwork/pokercashier.py, tests/Makefile.am,
	  tests/test-pokercashier.py.in, tests/test-pokerclient.py.in,
	  tests/test-webservice.py.in, tests/testlock.py: pokerlock is
	  using threads and the exact order in which operations are
	  executed cannot be determined. For this reason a pokerlock mockup
	  is created and used whereever pokerlock is used, directly or
	  indirectly. The exception is the pokercashier and the pokerlock
	  tests themselves because they are carefully implemented to take
	  this particularity into account.
	* pokernetwork/pokerpackets.py, pokernetwork/pokerservice.py,
	  pokernetwork/pokersite.py, tests/test-pokerservice.py.in,
	  tests/test-pokersite.py.in, tests/test-protocol.py.in,
	  tests/testmessages.py: When a tournament begins, the server
	  responsible for the tournament notifies all the servers in the
	  resthost table by sending an HTTP request on the /TOURNEY_START
	  end point. When a server receives a request on /TOURNEY_START, it
	  looks for all logged in avatars in explain mode which
	  participates in the tournament and sends them a
	  PacketPokerTourneyStart event with the tournament serial as well
	  as the table serial (to which the logged in avatar is seated).

2009-10-06  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py, tests/test-pokerpackets.py.in:
	  PacketPokerSetLocale are not proxified because the base class of
	  the packet is incorrect (bug #13576)

2009-10-05  Loic Dachary <loic@dachary.org>

	* tests/test-pokerservice.py.in: replace the cashier with a mockup
	  to avoid timing problems when testing getUserInfo
	* tests/test-pokerclient.py.in: increase the playTourney timeout
	  limit
	* pokernetwork/pokerpackets.py: Change the type of the buy-in to
	  int as it can exceed the capacity of a short. Convert time to int
	  instead of float to get rid of deprecation warnings.
	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  pokerservice must use seconds() instead of time.time()
	* tests/test-pokeravatar.py.in: Reduce the verbosity of pokerauth
	  tests and in production too.
	  remove spurious import time
	* tests/test-pokerauth.py.in: Reduce the verbosity of pokerauth
	  tests and in production too.
	* pokernetwork/pokerauth.py, pokernetwork/pokerauthmysql.py,
	  tests/testmessages.py: Reduce the verbosity of pokerauth tests
	  and in production too.
	* pokernetwork/pokerauth.py: be less verbose about auth loading

2009-10-04  Loic Dachary <loic@dachary.org>

	* configure.ac, pokernetwork/attrpack.py,
	  pokernetwork/pokeravatar.py, pokernetwork/pokerpackets.py,
	  pokernetwork/pokerservice.py, pokernetwork/pokertable.py,
	  pokernetwork/userstats.py, tests/Makefile.am,
	  tests/test-attrpack.py.in, tests/test-pokeravatar.py.in,
	  tests/test-pokerpackets.py.in, tests/test-pokerservice.py.in,
	  tests/test-pokertable.py.in, tests/test-protocol.py.in,
	  tests/test-tourneytablebalance.py.in, tests/test-userstats.py.in,
	  tests/testmessages.py: Fix the PLAYER_STATS implementation so
	  that it carries the game_id. Improve performances to reduce by
	  two the number of SQL requests.

2009-10-04  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/Makefile.am (XFAIL_TESTS): variable must be exported to
	environment for tests/run.in to receive it.

	* tests/run.in: Added "basename $1" call when searching in
	XFAIL_TESTS on show database failure.

2009-10-03  Loic Dachary <loic@dachary.org>

	* tests/Makefile.am, tests/chameleon.png, tests/testpoker.php.in:
	  cashIn and cashOut prototype changed. Add image for tests because
	  poker2d images are gone
	* tests/testcurrency.php.in: currency_db_user and
	  currency_db_password must use the configure defined values

2009-09-29  Loic Dachary <loic@dachary.org>

	* database/1.7.5-2.0.0.sql: turn MEMORY tables into MYISAM tables
	* database/schema.sql.in: ENGINE=MEMORY does not play well with
	  replicated servers
	* Makefile.am: add database/1.7.5-2.0.0.sql
	* database/schema.sql.in: resthost table must persist accross mysql
	  restarts

2009-09-24  Loic Dachary <loic@dachary.org>

	* tests/Makefile.am: exclude test-bug-14139.py
	* tests/Makefile.am: export XFAIL_TESTS
	* tests/Makefile.am: export XFAIL_TESTS
	* tests/run.in: if there is no database, tests expected to fail
	  must fail
	* pokernetwork/pokerpackets.py: typo

2009-09-13  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-bug-14139.py.in
	(PokerAvatarTablePickerDoesNotDealHandTestCase.nBotsAndOneLivePlayer):
	Abstracted test02 code into this method.
	(PokerAvatarTablePickerDoesNotDealHandTestCase.test02_tablePicker_someBots_playShouldSucceed_1bot):
	Wrote test.
	(PokerAvatarTablePickerDoesNotDealHandTestCase.test03_tablePicker_someBots_playShouldSucceed_2bot):
	Wrote test.
	(PokerAvatarTablePickerDoesNotDealHandTestCase.test04_tablePicker_someBots_playShouldSucceed_3bot):
	Wrote test.
	(PokerAvatarTablePickerDoesNotDealHandTestCase.test05_tablePicker_someBots_playShouldSucceed_4bot):
	Wrote test.
	(PokerAvatarTablePickerDoesNotDealHandTestCase.test06_tablePicker_someBots_playShouldSucceed_5bot):
	Wrote test.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCaseBaseClass.readyToPlay)
	(PokerAvatarTablePickerBaseClass.tablePickerSucceeds): Use
	getSerial() to lookup avatar serial.
	(settings_xml_table_picker_server): Added play money table to
	settings.
	(PokerAvatarTablePickerBaseClass.tablePickerSucceeds): Ignore play
	money buy-ins.

	* tests/test-bug-14139.py.in
	(PokerAvatarTablePickerDoesNotDealHandTestCase.test02_tablePicker_someBots_playShouldSucceed):
	Wrote test.
	(PokerAvatarTablePickerDoesNotDealHandTestCase.setUpBots): Wrote method.
	(PokerAvatarTablePickerDoesNotDealHandTestCase.startHandAndReceiveCards):
	Wrote test.

2009-09-07  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-bug-14139.py.in
	(PokerAvatarTablePickerDoesNotDealHandTestCase.startHandAndReceiveCards):
	Tweaked method from PokerAvatarTestCase.startHandAndReceiveCards
	(PokerAvatarTablePickerDoesNotDealHandTestCase.test01_tablePicker_allHuman_playSucceeds):
	Wrote test.
	(PokerAvatarTablePickerDoesNotDealHandTestCase.tearDown): Wrote
	method.
	(PokerAvatarTablePickerDoesNotDealHandTestCase.beginHandSetupOnePlayer):
	Wrote method, mostly cut-and-paste from
	PokerAvatarTestCaseBaseClass.beginHandSetup.
	(PokerAvatarTablePickerDoesNotDealHandTestCase.test01_tablePicker_allHuman_playSucceeds):
	Switched to new SetupOnePlayer, for better contrast with Bot
	players present.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCaseBaseClass.beginHandSetup)
	(PokerAvatarTestCaseBaseClass.dealTable)
	(PokerAvatarTestCaseBaseClass.doBlindPost): Moved methods into
	base class.
	(PokerAvatarTestCaseBaseClass.beginHandSetup): Added
	dealerAssigned argument.

	* tests/test-bug-14139.py.in: Created test file.

2009-09-06  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in (PokerAvatarTablePickerBaseClass):
	Abstracted out some code from PokerAvatarTablePickerTestCase.

	* Makefile.am (install-data-local, all-local): Removed 'client'
	from list in for loop, since r6200 deleted the files it would
	refer to.

2009-08-21  Loic Dachary <loic@dachary.org>

	* debian/control, debian/control.dapper, debian/control.edgy,
	  debian/control.etch, debian/control.feisty, debian/control.gutsy,
	  debian/control.hardy, debian/control.intrepid,
	  debian/control.jaunty, debian/control.lenny,
	  debian/control.unstable: no binary means architecture moves from
	  all to any
	* Makefile.am, tests/Makefile.am, tests/conf/poker.server.xml.in,
	  tests/test-pokernetworkconfig.py.in: fix distribution to pass
	  make distcheck
	* tests/test-pokernetworkconfig.py.in: add back wrongly removed
	  file
	* AUTHORS, Makefile.am, config/ccpython.m4, config/unittest.m4,
	  configure.ac, examples/run-pokerserver, examples/stress/bots.sh,
	  examples/stress/report.sh, examples/test-pokerweb,
	  pokernetwork/dispatch.py, pokernetwork/munin/Makefile.am,
	  pokernetwork/munin/poker_hands_,
	  pokernetwork/munin/poker_players_,
	  pokernetwork/munin/test_poker_hands_,
	  pokernetwork/munin/test_poker_players_,
	  pokernetwork/munin/test_poker_traffic_,
	  pokernetwork/munin/test_wget1, pokernetwork/pokerclient.py,
	  pokernetwork/upgrade.py, pokerweb/pages/currency_one.php,
	  tests/Makefile.am, tests/run.in, tests/test-pokeravatar.py.in,
	  tests/test-pokerclient.py.in,
	  tests/test-pokernetworkconfig.py.in, tests/test-upgrade.py.in,
	  tests/test-webservice.py.in, tests/testmessages.py,
	  tests/upgrade.in: fix tests and makefiles so that all tests run
	  without errors task #6711
	* COPYING, HACKING, HOWTO-install-from-sources, Makefile.am,
	  NIHPHOBIA, README, configure.ac, database/pokerdatabase.5.in,
	  database/pokerdatabaseupgrade.8.in, debian/control,
	  debian/control.dapper, debian/control.edgy, debian/control.etch,
	  debian/control.feisty, debian/control.gutsy,
	  debian/control.hardy, debian/control.intrepid,
	  debian/control.jaunty, debian/control.lenny,
	  debian/control.unstable, debian/copyright,
	  debian/python-poker-network.install,
	  debian/python-poker2d.install, debian/python-poker2d.menu,
	  debian/python-poker2d.postinst, debian/rules,
	  examples/interface.py, examples/interface_dummy_server.py,
	  gentoo, po, poker-client-specs.odp, pokerclient2d,
	  pokernetwork/OLDpokerclientpackets.py,
	  pokernetwork/currencyclient.py, pokernetwork/nullfilter.py,
	  pokernetwork/packets.py, pokernetwork/pokerauth.py,
	  pokernetwork/pokerauthmysql.py, pokernetwork/pokerbot.in,
	  pokernetwork/pokerbot.py, pokernetwork/pokerbothandeval.py,
	  pokernetwork/pokerbotlogic.py, pokernetwork/pokercashier.py,
	  pokernetwork/pokerchildren.py, pokernetwork/pokerclient.py,
	  pokernetwork/pokerclientpackets.py,
	  pokernetwork/pokerdatabase.py, pokernetwork/pokerexplain.py,
	  pokernetwork/pokergameclient.py, pokernetwork/pokerlock.py,
	  pokernetwork/pokerpackets.py, pokernetwork/pokerserver.py,
	  pokernetwork/pokertable.py, pokernetwork/protocol.py,
	  pokernetwork/proxyfilter.py, pokernetwork/server.py,
	  pokernetwork/upgrade.py, pokerstats/Makefile.am,
	  pokerstats/pokerstats.1.in, pokerstats/pokerstats.in,
	  pokerstats/run.in, pokerstats/stats.py, pokerstats/statslogic.py,
	  pokerstats/test-stats.py.in, pokerui, pokerweb/Makefile.am,
	  pokerweb/pages/birthday.php, pokerweb/pages/cash_in.php,
	  pokerweb/pages/cash_out.php, pokerweb/pages/common.php,
	  pokerweb/pages/create_account.php, pokerweb/pages/currency.php,
	  pokerweb/pages/edit_account.php, pokerweb/pages/image.php,
	  pokerweb/pages/index.php, pokerweb/pages/login.php,
	  pokerweb/pages/logout.php, pokerweb/pages/poker.php,
	  tests/Makefile.am, tests/conf/client.xml,
	  tests/conf/poker.client.xml.in, tests/conf/poker2d.xml.in,
	  tests/finishedfilter.py, tests/io_mockup.c,
	  tests/monitorplugin.py, tests/poker-interface-sid.supp,
	  tests/run.in, tests/test-actionscript.py.in,
	  tests/test-clientserver.py.in, tests/test-currencyclient.py.in,
	  tests/test-fc.py, tests/test-gamewindow.py.in,
	  tests/test-javascript.py.in, tests/test-leak-no-trial.py.in,
	  tests/test-leak-reference.py.in, tests/test-leak.py.in,
	  tests/test-packets.py.in, tests/test-poker-interface.py,
	  tests/test-poker2d.py.in, tests/test-pokeravatar.py.in,
	  tests/test-pokerbothandeval.py.in,
	  tests/test-pokerbotlogic.py.in, tests/test-pokercashier.py.in,
	  tests/test-pokerchildren.py.in, tests/test-pokerclient.py.in,
	  tests/test-pokerclientpackets.py.in,
	  tests/test-pokerdatabase.py.in, tests/test-pokerdisplay2d,
	  tests/test-pokerdisplay2d.py.in, tests/test-pokerexplain.py.in,
	  tests/test-pokergameclient.py.in,
	  tests/test-pokerinteractor.py.in,
	  tests/test-pokerinterface.py.in, tests/test-pokerlock.py.in,
	  tests/test-pokermemcache.py.in,
	  tests/test-pokernetworkconfig.py.in,
	  tests/test-pokerpackets.py.in, tests/test-pokerrenderer.py.in,
	  tests/test-protocol.py.in, tests/test-pygame,
	  tests/test-pygame.py.in, tests/test-quit.py.in,
	  tests/test-servercrash.py.in, tests/test-string.py.in,
	  tests/test-svg2gtk.py.in, tests/test-tourneytablebalance.py.in,
	  tests/test-unittestgui.cpp, tests/test-unittesthandhistory.cpp,
	  tests/test-unittestlobby.cpp, tests/test-unittestmain.cpp,
	  tests/test-unittestoutfits.cpp,
	  tests/test-unittesttournaments.cpp, tests/test-upgrade.py.in,
	  tests/testbirthday.php.in, tests/testclock.py,
	  tests/testcurrency.php.in, tests/testerrorfilter.py,
	  tests/testfilter.py, tests/testmessages.py, tests/testpackets.py,
	  tests/testwebservice.php.in, tests/upgrade-rsync,
	  tests/upgrade.in, tests/vncpasswd: remove all occurences of
	  poker2d and pokerui related files. task #6711
	* pokernetwork/pokerdatabase.py, tests/test-pokerdatabase.py.in:
	  When connecting to MySQL use the reconnect = 1 parameter to
	  transparently reconnect when the connection is lost.
	* pokernetwork/pokerpackets.py: s/autoblind_ante/auto_blind_ante/
	* conf/poker.bot.xml.in, conf/poker.client.xml.in,
	  examples/poker.bot.xml, examples/poker.server-monotone.xml,
	  examples/poker.server.xml, pokerprizes/poker.prizes.xml.in,
	  pokerstats/poker.stats.xml.in: update XML tag to 2.0.0

2009-08-14  Loic Dachary <loic@dachary.org>

	* conf/poker.server.xml.in: remove obsolete example of
	  countfilter.py

2009-08-13  Loic Dachary <loic@dachary.org>

	* pokerclient2d/poker2d.xml.in, tests/conf/poker.client.xml.in,
	  tests/test-clientserver.py.in: Bump poker-network to version
	  2.0.0 ( not backward compatible )
	* Makefile.am, configure.ac, pokernetwork/countfilter.py,
	  pokernetwork/pokeravatar.py, pokernetwork/pokermemcache.py,
	  pokernetwork/pokerservice.py, pokernetwork/pokersite.py,
	  pokernetwork/pokertable.py, pokernetwork/server.py,
	  tests/Makefile.am, tests/test-countfilter.py.in,
	  tests/test-pokeravatar.py.in, tests/test-pokerclient.py.in,
	  tests/test-pokerservice.py.in, tests/test-pokersite.py.in,
	  tests/test-pokertable.py.in, tests/test-proxyfilter.py.in,
	  tests/test-tourneytablebalance.py.in, tests/testmessages.py:
	  merge -c 6138 -c 6139 -c 6142 into the trunk to implement
	  multi-session in version 2.0.0 #6690

2009-08-12  Loic Dachary <loic@dachary.org>

	* ChangeLog, NEWS, debian/changelog, pokernetwork/__init__.py,
	  pokernetwork/pokersite.py: Bump poker-network to version 2.0.0 (
	  not backward compatible )

2009-08-03  Loic Dachary <loic@dachary.org>

 	* Release 1.7.5

	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in: When a
	  TableJoin packet is processed, first remove any packets with the 
	  same game_id from the queue. This allows a client to join a table
	  as if it was the first time, even if it is already joined. The
	  jpoker client uses it to allow the user to reload the game at
	  anytime without obsoleting the session.
	  bug#14026

2009-07-26  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokeravatar.py, pokernetwork/pokerpackets.py,
	  pokernetwork/pokerservice.py, tests/test-pokeravatar.py.in,
	  tests/test-pokerservice.py.in, tests/test-protocol.py.in:
	  Implementation of user created tournament with the
	  PacketPokerCreateTourney packet (task #6657)

2009-07-24  Loic Dachary <loic@dachary.org>

	* tests/test-pokerservice.py.in: allow for rounding errors
	* tests/test-pokerservice.py.in: remove tests related to /REST
	  endpoint
	* conf/poker.server.xml.in, pokernetwork/pokerservice.py,
	  tests/test-pokerservice.py.in, tests/test-webservice.py.in: 1)
	  remove obsolete /REST poker service and associated tests
	  2) The sng_timeout attribute has been added to poker.server.xml
	  and default to one hour. Poker-network has been modified to
	  cancel any sng for which register time exceeded sng_timeout.

2009-07-19  Loic Dachary <loic@dachary.org>

	* conf/poker.bot.xml.in: default for bots it to use the autorefill
	* HOWTO-install-from-sources: add missing autoreconf -fi

2009-07-17  Johan Euphrosine  <proppy@aminche.com>

	* database/schema.sql.in: 
	* pokernetwork/pokerservice.py (PokerService.chatMessageArchive): 
	* tests/test-pokerservice.py.in (PokerServiceTestCase.test25_chatMessageArchive): 
	* pokernetwork/pokertable.py (PokerTable.chatPlayer): 
	* tests/test-pokertable.py.in (PokerTableTestCase.test10_info_and_chat): 
	add database archiving of chat messages.

2009-07-14  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokertable.py: https://gna.org/bugs/index.php?13950
	  The max_missed_round variable always ends up being a string if
	  it's specified in XML config because it's not typecast to INT.

2009-07-13  Loic Dachary <loic@dachary.org>

	* database/1.7.4-1.7.5.sql, database/schema.sql.in,
	  pokernetwork/pokerservice.py, tests/test-pokerservice.py.in: The
	  prize currency for a tournament can be different from the buy in
	  currency. The prize_currency field is added to tourneys_schedule
	  and will be used instead of the currency_serial if it is greater
	  than zero. The prize_currency_from_date_format field has been
	  added with the same semantic as currency_serial_from_date_format
	  (i.e. a template for strftime that is used to compute the
	  currency). Instead of restricting the template to a subset of
	  the placehodlers (Ymd), all numerical placeholders implemented by
	  strftime are now allowed.
	* pokernetwork/pokersite.py, tests/test-pokersite.py.in: packet=
	  argument, in the absence of jsonp argument is interpreted as the
	  packet as if it was the raw content of the post. It may be useful
	  for libraries such as opensocial that don't know how to send raw
	  data.
	  https://gna.org/task/?6656

2009-07-11  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test42_0_handSelectAll_MissingPrivsCauseFail):
	Wrote test.
	(PokerAvatarTestCase.handSelectAllMissingPrivsMakesItFail): Wrote
	method.
	(PokerAvatarTestCase.pingThenUnprivRegisterTourney): Renamed
	method to pingThenExpectPrivilegeFailure.
	(PokerAvatarTestCase.tourneyRegisterUnpriv)
	(PokerAvatarTestCase.seatUnpriv)
	(PokerAvatarTestCase.userInfoUnpriv)
	(PokerAvatarTestCase.personalInfoUnpriv)
	(PokerAvatarTestCase.playerInfoUnpriv)
	(PokerAvatarTestCase.test17_0_tourneyRegisterUnpriv): Rewrote test.
	(PokerAvatarTestCase.test17_1_seatUnpriv)
	(PokerAvatarTestCase.test17_2_userInfoUnpriv)
	(PokerAvatarTestCase.test17_3_personalInfoUnpriv)
	(PokerAvatarTestCase.test17_4_tourneyTourneyRegisterUnpriv): Wrote test.

2009-07-07  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in: The
	  list of candidates for registration in the waiting list of a
	  satellite tournament includes the players that were rejected
	  because they were already registered. The waiting list must try
	  all candidates in order (meaning try again the winners that were
	  rejected) and stop either when there are no players left or when
	  the tournament quota is reached.
	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in: when
	  handling the waiting list of a satellite tournament, registration
	  must be against satellite_of, not serial
	* tests/run.in: for some reason ../pokernetwork/proxyfilter is not
	  100% for loic

2009-07-06  Loic Dachary <loic@dachary.org>

	* tests/test-protocol.py.in: add missing POKER_PLAYER_HAND_STRENGTH
	* tests/run.in: ../pokernetwork/proxyfilter is 100%

2009-07-06  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokerclientpackets.py: update
	  PacketPokerPlayerHandStrength with bkuhn documentation
	* pokernetwork/pokerexplain.py, tests/test-pokerexplain.py.in:
	  pokerexplain send PacketPokerPlayerHandStrength on each street
	* pokernetwork/pokerclientpackets.py: add
	  PacketPokerPlayerHandStrength

2009-07-06  Loic Dachary <loic@dachary.org>

	* tests/run.in: ../pokernetwork/proxyfilter not yet 100%
	* pokernetwork/pokerclientpackets.py: add missing trailing ) to
	  perl generation helper
	* tests/test-countfilter.py.in: use @srcdir@ instead of hardwired .

2009-07-05  Loic Dachary  <loic@pokerdev.call.tld>

	* tests/test-countfilter.py.in: add @srcdir@

2009-07-05  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerlock.py.in
	(PokerLockTestCase.test06_aquireTimeout): Changed settings to make
	sure sleep timeout is even faster.
	(PokerLockTestCase.test05_many): Reduced number of many locks from
	500 -> 300 to speed test up.
	(PokerLockTestCase.test06_aquireTimeout)
	(PokerLockTestCase.test04_release_twice.validate)
	(PokerLockTestCase.test02_wait)
	(PokerLockTestCase.test02_wait.locker2): clear_all_messages() call
	was in wrong place.
	(PokerLockTestCase.test01_simple): Brought test back in since I
	believe all timing issues are solved.

	* tests/run.in (COVERAGE_100_PERCENT): Added
	../pokernetwork/pokerlock.

	* tests/test-pokerlock.py.in
	(PokerLockTestCase.test02_wait.locker2_failed): Commented back in
	test and switch timeout on lock to 0.
	(PokerLockTestCase.test01_simple): Commented back in but made
	return True at top.
	(PokerLockTestCase.test04_release_twice.validate)
	(PokerLockTestCase.test06_aquireTimeout.lockFastTimeout)
	(PokerLockTestCase.test07_mainTests_stopped)
	(PokerLockTestCase.test02_wait.locker2)
	(PokerLockTestCase.test03_acquire_dead)
	(PokerLockTestCase.test04_release_twice.validate): Changed from
	get_messages() comparisons to search_output()s.
	(PokerLockTestCase.test08_mainTests_emptyQueue): Rewrote test
	completely.
	(PokerLockTestCase.test04_release_twice.validate)
	(PokerLockTestCase.test06_aquireTimeout.validate)
	(PokerLockTestCase.test02_wait.validate): : Removed 'loop, queue
	size' from validate output check.

2009-07-04  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/run.in (COVERAGE_100_PERCENT): Added
	../pokernetwork/proxyfilter.

	* tests/test-proxyfilter.py.in
	(ProxyFilterTestCase.test02_forceInitCoverHeaderReplace): Wrote test.
	(ProxyFilterTestCase.test03_checkbadReason.MockDeferred.errback):
	Wrote test.

	* tests/run.in (COVERAGE_100_PERCENT): Added
	../pokernetwork/OLDpokerclientpackets.

	* tests/test-pokerclientpackets.py.in: Added
	OLDpokerclientpackets.py to the COVERAGE_FILES list.
	(PokerClientPacketsTestCase.test_chips2amount_old): Wrote test.

	* configure.ac, tests/Makefile.am (TESTS): Added
	test-nullfilter.py.

	* tests/test-nullfilter.py.in: Added file and wrote tests.

	* tests/run.in (COVERAGE_100_PERCENT): Added
	../pokernetwork/countfilter.

	* tests/Makefile.am (TESTS): Added test-countfilter.py.

2009-07-03  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerclient.py.in
	(PokerClientFactoryUnitMethodCoverageTestCase.test11_restartNoDisplay):
	Finished test.
	(PokerClientFactoryUnitMethodCoverageTestCase.setupMockChildrenReactorOs):
	No longer mock-up os.

	* tests/test-pokeravatar.py.in
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase):
	Removed now-superfluous tests.

	* pokernetwork/pokeravatar.py
	(PokerAvatar._convertTablePickerArgsToListTableQuery): Removed
	now-superfluous method.
	(PokerAvatar.performPacketPokerTablePicker): Changed to use new
	PokerService.getTableBestByCriteria() function prototype.

	* tests/test-pokerservice.py.in (GetTableBestByCriteriaTestCase):
	Reworked tests to use proper arguments for
	getTableBestByCriteria().

	* pokernetwork/pokerservice.py
	(PokerService.getTableBestByCriteria): Changed documentation and
	switched from using listTables() to searchTables(), including
	change to function prototype.

	* tests/test-pokerservice.py.in
	(ListTablesSearchTablesTestCases.test10_tooMany): Fixed to use
	variant rather that betting_structure since listTables() no longer
	takes variant.
	(ListTablesSearchTablesTestCases.test09_currency_and_variant_and_bettingStructure_and_count_withSome):
	Fixed typo in test conversion.

	* pokernetwork/pokerservice.py (PokerService.listTables):
	Refactored method and generated searchTables()
	(PokerService.searchTables): Wrote method.

	* tests/test-pokerservice.py.in (ListTablesSearchTablesTestCases):
	Renamed test case class.
	(ListTablesSearchTablesTestCases.test07_currency_and_variant_and_bettingStructure)
	(ListTablesSearchTablesTestCases.test08_currency_and_variant_and_bettingStructure_and_count_noOne)
	(ListTablesSearchTablesTestCases.test09_currency_and_variant_and_bettingStructure_and_count_withSome):
	Reworked tests to use searchTables.

	* pokernetwork/pokerservice.py (PokerService.listTables): Improved
	docstring to indicate that listTables() is going back to the "old
	way" with the string arg, and will have a helper function for the
	other functionality.

2009-06-30  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  https://gna.org/bugs/index.php?13821
	  In pokerservice.py:spawnTourneyInCore, instead of setting
	  satellite_of from the serial in the database, it is first
	  translated from a tourneys_schedule.serial into a
	  tourneys.serial. A number of checks can be made at this time and
	  if something fails (such as the tourney not being in registering
	  state), an error message is printed in the logs and the serial 0
	  is returned (which means this tournament is no longer considered
	  a satellite).

2009-06-28  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/pokerpackets.py (PacketPokerTablePicker):
	Documented how the appropriate table is selected.

	* pokernetwork/pokerservice.py (PokerService.listTables): Added
	ORDER BY players desc, serial

	* tests/test-pokeravatar.py.in
	(PokerAvatarTablePickerTestCase.test04_tablePicker_twoPossibleGivesMostEmpty):
	Renamed test and enabled.
	(PokerAvatarTablePickerTestCase.test12_tablePicker_twoPossibleGivesMostFullWithSeatsButNotFullOne):
	Wrote test.

	* pokernetwork/pokerservice.py (PokerService.tourneyGameFilled):
	Added reason argument to client.join() call.
	(PokerService.tourneyMovePlayer): added reason argument to
	movePlayer() call.

	* tests/test-pokerservice.py.in (PokerServiceTestCase.ClientMockup)
	(TourneyManagerTestCase.ClientMockup)
	(TourneyFinishedTestCase.ClientMockup): Added reason argument to
	mock-up.
	(PokerServiceTestCase.test15_runTourney): Added expectedReason for
	tourney start.
	(TourneyMovePlayerTestCase.Table): Added reason support for
	Table.moveTable() mock-up.

	* pokernetwork/pokeravatar.py (PokerAvatar.createTable)
	(PokerAvatar.handlePacketLogic)
	(PokerAvatar.performPacketPokerTableJoin)
	(PokerAvatar.performPacketPokerTablePicker)
	(PokerAvatar.listTables, PokerAvatar.join): Added support for
	PacketPokerTable() reason field throughout.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test04_createTable): Added packet checks,
	including checking for reason.
	(PokerAvatarTestCase.joinTableForceFail.forceFalse): Added reason
	argument for mock-up.

	* pokernetwork/pokerpackets.py (PacketPokerTable.__init__)
	(PacketPokerTable.pack, PacketPokerTable.unpack)
	(PacketPokerTable.calcsize, PacketPokerTable.__str__): Added
	reason field.

	* pokernetwork/pokeravatar.py (PokerAvatar.join): Added support
	for reasons on joins.

	* pokernetwork/pokertable.py (PokerTable.handReplay)
	(PokerTable.movePlayer, PokerTable.joinPlayer): Added support for
	reasons on joins.

	* tests/test-pokertable.py.in
	(PokerTableTestCaseBase.createPlayer)
	(PokerTableTestCase.test18_handReplay)
	(PokerTableTestCaseTransient.createPlayer)
	(PokerTableMoveTestCase.test15_moveTo, MockClient.join)
	(MockClient.__init__):  Added support for reasons on joins.
	(MockClientWithTableDict.__init__): Added test object argument.

	* pokernetwork/pokerpackets.py (PacketPokerTable): Added
	REASON_HAND_REPLAY.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCaseBaseClass.joinTable): Added reason argument
	and asserts for packet information.
	(PokerAvatarTestCase.listTables): Added test for packet.reason.
	(PokerAvatarTestCase.joinTableForceFail.forceFalse): Added test
	for packet.reason.
	(PokerAvatarTablePickerTestCase.tablePickerFails): Added test for
	packet.reason.
	(PokerAvatarTablePickerTestCase.tablePickerSucceeds): Added test
	for packet.reason.

	* pokernetwork/pokerpackets.py (PacketPokerTable): Created
	constants for reasons.

2009-06-27  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/pokerpackets.py (PacketPokerTable): Added reason
	field and documented it.

	* pokernetwork/pokeravatar.py
	(PokerAvatar.performPacketPokerTablePicker): added support for
	auto_blind_ante setting in packet.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTablePickerTestCase.tablePickerSucceeds): Added
	autoBlindAnte argument.
	(PokerAvatarTablePickerTestCase.test03_tablePicker_onlyOnePossible):
	Set autoBlindAnte to True for this test.

	* pokernetwork/pokerpackets.py (PacketPokerTablePicker):
	Documented and added new auto_blind_ante boolean in packet.
	(PacketPokerAutoBlindAnte): Correctly documented what server sends
	back.
	(PacketPokerNoautoBlindAnte): Correctly documented what server
	sends back.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.requestsWithWrongSerial): Changed err_type
	expected for table_picker to PACKET_POKER_ERROR.
	(PokerAvatarTablePickerTestCase.tablePickerFails): Now expect only
	a PACKET_POKER_ERROR on failure.
	(PokerAvatarTablePickerTestCase): Wrote method.
	(PokerAvatarTablePickerTestCase.restoreTableCanAddPlayer): Wrote
	method.
	(PokerAvatarTablePickerTestCase.test11_tablePicker_failureFromTableCannotAddPlayer):
	Wrote test.

	* pokernetwork/pokeravatar.py
	(PokerAvatar.performPacketPokerTablePicker): Added
	deprecatedEmptyTableBehavior and requestorPacketType arguments to
	performPacketPokerTableJoin() call.  Error conditions that once
	sent PacketPokerTable() now return PacketPokerError().
	(PokerAvatar.performPacketPokerTableJoin): Added
	deprecatedEmptyTableBehavior and requestorPacketType arguments.

	* pokernetwork/pokerpackets.py (PacketPokerTablePicker):
	Documented the new packet error return for failures.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.joinTableForceFail): Added check for new
	PACKET_POKER_ERROR when TableJoin() fails.  Added note about
	deprecated behavior.

	* pokernetwork/pokerpackets.py (PacketPokerTableJoin): Added
	GENERAL_FAILURE error code for PacketPokerTableJoin().  Documented
	new error response.  Documented deprecation of empty PokerTable()
	return for errors.

2009-06-26  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  Fixes https://gna.org/bugs/index.php?13769
	  user A is disconnected, tourney T finishes, user A connects (
	  because tourney T is finished, it will not be added to user A
	  tourneys list ), doTourneyDeleteRoute runs (was scheduled to run
	  after a delay)
	* debian/python-poker-network.postinst,
	  debian/python-poker-network.postrm: Fixes
	  https://gna.org/bugs/?13765
	  poker-network debian installation/upgrade delete poker.server.xml

2009-06-22  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTablePickerTestCase.test10_tablePicker_sitOutCausesNoMatchesFound):
	Wrote test.

	* tests/test-pokerservice.py.in
	(GetTableBestByCriteriaTestCase.test07_noneDueToSittingOut): Wrote test.

	* pokernetwork/pokerservice.py (PokerService.listTables): Hold on
	to min_players value in self._listTables_min_players_cached.
	(PokerService.getTableBestByCriteria): Skip tables where not
	enough players are sitting in.

	* tests/test-pokerservice.py.in
	(GetTableBestByCriteriaTestCase.test05_noneDueToAskingForPlayers):
	Wrote test.
	(GetTableBestByCriteriaTestCase.test06_oneSpecificDueToPlayerSittingOut):
	Wrote test.

	* pokernetwork/pokerservice.py (PokerService.listTables): Added
	"order by serial", so that lower table numbers are earlier in
	list.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTablePickerTestCase.test05_tablePicker_emptyTableLowestNumberWhenEverythingIsEmpty):
	Corrected test.

	* pokernetwork/pokerpackets.py (PacketPokerTablePicker): proppy
	pointed out the first paragraph of the semantics description was
	incomplete.  Fixed.  (via proppy as patch) other documentation
	improvements.

2009-06-21  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in (PokerAvatarTestCaseBaseClass.setUp)
	(PokerAvatarTestCaseBaseClass.setUpClient): Moved initialization
	of self.client_factory entries from setUp to setUpClient.
	(PokerAvatarTablePickerTestCase.tablePickerSucceeds): Assertions
	assumed the variant, max_players, and betting_structure was wrong.
	(PokerAvatarTestCaseBaseClass.joinTable): Added variant, and
	max_players arguments.
	(PokerAvatarTestCaseBaseClass.seatTable): Added seatNumber request
	parameter.
	(PokerAvatarTablePickerTestCase.test04_tablePicker_twoPossibleGivesMostEmpty):
	Fixed to actually test the situation it purports to.

	* pokernetwork/pokeravatar.py
	(PokerAvatar.performPacketPokerTableJoin): Added optional second
	parameter to allow using of cached version of a table for call
	from performPacketPokerTablePicker().
	(PokerAvatar.performPacketPokerSeat)
	(PokerAvatar.performPacketPokerBuyIn)
	(PokerAvatar.performPacketPokerSit): Added return value of
	True/False for status for use when called from
	performPacketPokerTablePicker().

	* tests/test-pokerservice.py.in
	(GetTableBestByCriteriaTestCase.test04_nothingFoundDueToFullness):
	Wrote test.

	* pokernetwork/pokerservice.py
	(PokerService.getTableBestByCriteria): Skip full tables.

	* tests/test-pokerservice.py.in (GetTableBestByCriteriaTestCase):
	Created test class.
	(GetTableBestByCriteriaTestCase.test00_nothingReturnedDueToNoTableMatchingString):
	Wrote test.
	(GetTableBestByCriteriaTestCase.test01_nothingReturnedDueToNotEnoughMoney):
	Wrote test.
	(GetTableBestByCriteriaTestCase.test02_onlySubSetPossibleDueToLimitedFunds):
	Wrote test.
	(GetTableBestByCriteriaTestCase.test03_manyChoicesDueToWealth):
	Wrote test.

	* pokernetwork/pokerservice.py
	(PokerService.getTableBestByCriteria): Wrote method.

	* pokernetwork/pokeravatar.py (PokerAvatar.performPacketPokerSeat)
	(PokerAvatar.performPacketPokerBuyIn)
	(PokerAvatar.performPacketPokerSit)
	(PokerAvatar.performPacketPokerTableJoin)
	(PokerAvatar.performPacketPokerTablePicker): Pulled method body
	from handlePacketLogic().

	* pokernetwork/pokerpackets.py (PacketPokerTablePicker): Added
	documentation information on possible intervening operation
	failures.

	* pokernetwork/pokeravatar.py
	(PokerAvatar._convertTablePickerArgsToListTableQuery): Wrote method.
	(PokerAvatar.handlePacketLogic): Added handling of
	PACKET_POKER_TABLE_PICKER as specified in pokerpackets.py
	Semantics for that packet.

	* tests/test-pokeravatar.py.in
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.setUp):
	Fixed method name and added import for PokerAvatar.

	* tests/test-pokeravatar.py.in (ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.test00_convertTablePickerArgs_currencySerialOnly)
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.test01_convertTablePickerArgs_minPlayersOnly)
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.test02_convertTablePickerArgs_variantOnly)
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.test03_convertTablePickerArgs_bettingStructureOnly)
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.test04_convertTablePickerArgs_various)
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.test05_errorExpected_various):
	Expect no output messages.
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.test07_noTabsAllowed):
	Wrote test.

	* tests/test-pokerservice.py.in
	(ListTablesTestCase.test10_tooMany): Wrote test.
	(ListTablesTestCase.test11_currencySerialIsNotAnInteger): Wrote test.
	(ListTablesTestCase.test12_minPlayersIsNotAnInteger): Wrote test.
	(ListTablesTestCase.test14_sqlInjectionInParametersShouldNotWork):
	Wrote test.
	(ListTablesTestCase.test09_currency_and_variant_and_bettingStructure_and_count_withSome):
	Fixed 0 min_player tests, which were not properly drafted.  Fixed
	UPDATE SQL statements as needed.  Added messages check.

	* pokernetwork/pokerservice.py (PokerService.listTables): Extended
	implementation to include betting structure and user count.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTablePickerTestCase.test09_tablePicker_noTableDueToLackofFunds):
	Wrote test.

2009-06-20  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTablePickerTestCase.tablePickerSucceeds): Added
	PACKET_POKER_SIT check.  Added check of money amount setting.
	(PokerAvatarTablePickerTestCase.tablePickerFails): Added failure
	if PACKET_POKER_TABLE_PICKER failure sends back something other
	than any empty PACKET_POKER_TABLE.
	(PokerAvatarTablePickerTestCase.setMoneyForPlayer): Wrote method.

	* pokernetwork/pokerpackets.py (PacketPokerTablePicker): Created
	new packet.

	* tests/test-pokeravatar.py.in (Run): Added PokerAvatarNoClientServerTestCase.
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase):
	Created coverage class.
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.setup):
	Wrote method.
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase): Wrote test.
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.test01_convertTablePickerArgs_minPlayersOnly):
	Wrote test.
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.test02_convertTablePickerArgs_variantOnly):
	Wrote test.
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.test03_convertTablePickerArgs_bettingStructureOnly):
	Wrote test.
	(ConvertTablePickerArgsToListTablesQueryStringUnitTestCase.test04_convertTablePickerArgs_various):
	Wrote test.

	* tests/test-pokerservice.py.in
	(ListTablesTestCase.test09_currency_and_variant_and_bettingStructure_and_count_withSome):
	Wrote test.

	* pokernetwork/pokerservice.py (PokerService.listTables): Added a
	docstring and comment for this method.

2009-06-15  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(ListTablesTestCase.test07_currency_and_variant_and_bettingStructure):
	Wrote test.
	(ListTablesTestCase.test08_currency_and_variant_and_bettingStructure_and_count_noOne):
	Wrote test.

2009-06-14  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in (PokerServiceTestCaseBase.setUp):
	Changed to take settingsFile as an argument for easier overriding
	in subclasses.
	(ListTablesTestCase.setUp): Wrote method.
	(ListTablesTestCase): Rewrote all tests in class to use new xml
	data with five tables.

	* tests/test-protocol.py.in
	(UGAMEProtocolTestCase.testHandleData): 165 will be the
	TablePicker packet.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTablePickerTestCase.test01_tablePicker_failure_by_variant):
	Wrote test.
	(PokerAvatarTablePickerTestCase.test00_tablePicker_failure_by_min):
	Renamed test.
	(PokerAvatarTablePickerTestCase.test02_tablePicker_failure_by_structure):
	Wrote test.
	(PokerAvatarTablePickerTestCase.test03_tablePicker_onlyOnePossible):
	Wrote test.
	(PokerAvatarTablePickerTestCase.test04_tablePicker_twoPossibleGivesMostEmpty):
	Wrote test.
	(PokerAvatarTablePickerTestCase.test05_tablePicker_emptyTableLowestNumberWhenEverythingIsEmpty):
	Wrote test.
	(PokerAvatarTestCaseBaseClass.sitOut): Moved to BaseClass.
	(PokerAvatarTablePickerTestCase.test06_tablePicker_shouldNoticeWhenSitOutMakesTableBadChoice):
	Wrote test.
	(PokerAvatarTablePickerTestCase.test07_tablePicker_shouldNotPickFullTableEvenIfPlayerSitsOut):
	Wrote test.

2009-06-13  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in (PokerAvatarTestCaseBaseClass):
	Created class.
	(PokerAvatarTestCaseBaseClass.destroyDb,
	(PokerAvatarTestCaseBaseClass.setUpServer,
	(PokerAvatarTestCaseBaseClass.setUpClient,
	(PokerAvatarTestCaseBaseClass.setUp,
	(PokerAvatarTestCaseBaseClass.cleanSessions,
	(PokerAvatarTestCaseBaseClass.tearDown,
	(PokerAvatarTestCaseBaseClass.quit): Moved from
	PokerAvatarTestCase into base class.
	(PokerAvatarTestCase.setUpServer): Rewrote to use base class.
	(PokerAvatarTestCaseBaseClass.createClients): Wrote method; added
	call to it in every test in PokerAvatarTestCase.
	(PokerAvatarTablePickerTestCase.tablePickerSucceeds): Wrote
	method.
	(PokerAvatarTablePickerTestCase.tablePickerFails): Wrote method.
	(PokerAvatarTablePickerTestCase.startPlayerSeatedAndPlaying):
	Wrote method.
	(PokerAvatarTestCaseBaseClass.seatTable)
	(PokerAvatarTestCase.setLocale): successive ifs should be elifs.
	(PokerAvatarTablePickerTestCase.test00_tablePickerFailure): Wrote test.
	(PokerAvatarTablePickerTestCase.preparePlayerForTablePickerSend):
	Wrote method.

2009-06-11  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerexplain.py, pokernetwork/pokergameclient.py,
	  tests/test-pokerexplain.py.in, tests/test-pokergameclient.py.in:

            The general rule is that PokerExplain will always set the player_list
            according to the content of the InGame packet sent by the server. When
            an InGame packet is received, the player list is stored in the poker
            game. All subsequent calls to buildPlayerList ( happens when
            beginTurn, initRound or _talkedBlindAnte are called ) will use the
            stored value instead of computing it.

            There are three situations to consider when reasoning about the player
            list in the context of a client.

            1) the client receives a batch stream that ends at the blind/ante stage
               it will receive a InGame before the Start packet and the players referenced
               by all the packets sent by the server up to the Stream packet will be consistent.
               Afterwards, if one of the players declined to pay the blinds, the player list may
               be recomputed by the server. It will be sent before moving to the next round and after
               the blind/ante are finished.
            2) the client receives a batch stream that ends after pre-flop. Even if one of the
               players declined to pay the blind, the game history in the server has been rewritten
               to remove him. The InGame packet sent before the Start packet will not show the
               player at all. And there will be no additional InGame packet before going to pre-flop.
            3) the client receives a InGame and Start packet but not in a batch stream, meaning it
               has seen a game already. The situation is essentially the same as 1)

	* pokernetwork/pokerpackets.py, tests/test-pokeravatar.py.in:
	  schedule_serial is added to PACKET_POKER_TOURNEY in a way that
	  preserves the backward compatibility with the binary protocol
	  (this field is not available in the binary protocol).
	* debian/python-poker-network.postinst,
	  debian/python-poker-network.postrm: Conf file must not be copied
	  and generated at the same time as it creates conflicts with ucf.
	  When purging, make sure the config files are actually removed.

2009-06-10  Loic Dachary <loic@dachary.org>

	* debian/python-poker-network.links: links to SQL upgrades must
	  have a name that matches the version

2009-06-09  Loic Dachary <loic@dachary.org>

	* tests/test-pokerserver-run-load.py.in: rework test to take into
	  account that there is no duplicate of SSL import statement
	* pokernetwork/pokerserver.py: SSLContextFactor can only be
	  imported if SSL succeeds
	* tests/test-pokerserver.py.in: Do not fetch poker-network
	  configuration files in the installed directories. This will cause
	  problems if poker-network is installed on the machine where the
	  tests run when testing for the absence of poker.pem.
	* pokernetwork/pokerserver.py: remove double and unprotected import
	  of SSL
	* Makefile.am: Add database/1.7.4-1.7.5.sql to the distribution
	* tests/test-pokerservice.py.in: test the new
	  tourneySatelliteSelectPlayer and tourneySatelliteWaitingList
	  pokerservice functions
	* pokernetwork/pokertable.py: Do not call scheduleAutoDeal if
	  withing a table.update nested call (it will be called later in
	  the table.update function anyway) to prevent harmless but noisy
	  stack trace warning
	* pokernetwork/pokerservice.py: Implement
	  tourneySatelliteSelectPlayer and tourneySatelliteWaitingList to
	  register satellite tournament winners
	* pokernetwork/pokerpackets.py: Add VIA_SATELLITE error to tourney
	  registration packet
	* database/1.7.4-1.7.5.sql, database/schema.sql.in: Add satellite
	  fields to tourneys tables.
	* NEWS: Note about satellite tournaments implementation

2009-06-08  Johan Euphrosine <proppy@aminche.com>

	* tests/test-pokerexplain.py.in: revert accidental commit
	* pokernetwork/pokerexplain.py, tests/test-pokerexplain.py.in: add
	  [serial] prefix to PokerExplain instance

2009-06-01  Loic Dachary <loic@dachary.org>

	* conf/poker.server.xml.in: explain the ratio that must be
	  maintained between timeout values
	* Makefile.am: pokerconfigupgrade must be called with PYTHONPATH
	  for prizes and stats

2009-06-06  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerclient.py.in
	(PokerClientFactoryUnitMethodCoverageTestCase.test09_upgradeTick):
	Wrote test.
	(PokerClientFactoryUnitMethodCoverageTestCase.test10_upgradeTick_noDisplay):
	Wrote test.

	* pokernetwork/pokerclient.py
	(PokerClientFactory.networkNotAvailable): "no cover".  pass
	statements cannot be covered.
	(PokerClientFactory.networkAvailable): "no cover".  pass
	statements cannot be covered.

	* tests/test-pokerclient.py.in
	(PokerClientFactoryUnitMethodCoverageTestCase.test08_checkNetwork_ForceHostNotResolved):
	Wrote test.

2009-05-31  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerclient.py.in (PokerSkinMethodUnitTest): Created
	test class.
	(PokerSkinMethodUnitTest.test00_destroyDoesNothing): Wrote test.
	(PokerSkinMethodUnitTest.test01_interfaceReadyDoesNothing):
	Wrote test.
	(PokerSkinMethodUnitTest.test02_getAndSetURL): Wrote test.
	(PokerSkinMethodUnitTest.test04_hideOutfitEditorDoesNothing):
	Wrote test.
	(PokerSkinMethodUnitTest.test05_showOutfitEditorDoesNothing):
	Wrote test.
	(PokerClientLogErrorFunctionTestCase): Created test class.
	(PokerClientLogErrorFunctionTestCase.test00_errLogTest): Wrote test.
	(PokerClientFactoryUnitMethodCoverageTestCase): Created test class.
	(PokerClientFactoryUnitMethodCoverageTestCase.test00_initWithBadConfig):
	Wrote test.
	(PokerClientFactoryUnitMethodCoverageTestCase.test01_initWithEmptySequence):
	Wrote test.
	(PokerClientFactoryUnitMethodCoverageTestCase.test02_initWithstringValues):
	Wrote test.
	(PokerClientFactoryUnitMethodCoverageTestCase.test03_init_configWithProperInts):
	Wrote test.
	(PokerClientFactoryUnitMethodCoverageTestCase.test04_init_missingChatMissingDelays):
	Wrote test.
	(PokerClientFactoryUnitMethodCoverageTestCase.test05_init_roundPositionOverrides):
	Wrote test.
	(PokerClientFactoryUnitMethodCoverageTestCase.test07_resolve):
	Wrote test.
	(PokerClientFactoryUnitMethodCoverageTestCase.test06_delRemovesGames):
	Wrote test.

2009-05-19  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/run.in (COVERAGE_100_PERCENT): pokerserver.py now covered
	100%!

	* pokernetwork/pokerserver.py (__main__): Added pragma No cover
	for main.

2009-05-18  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerserver-run-load.py.in
	(PokerServerLoadingSSLTestCase.test01_openSSLMissing): Wrote basic
	test to cover OpenSSL missing.

2009-05-17  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerserver.py.in
	(PokerServerMakeApplicationCoverageTestCase.test02_validConfig):
	Wrote test.
	(PokerServerMakeApplicationCoverageTestCase.test01_missingConfigFileGivenOnCLI_sysVersionDitched):
	Wrote test.
	(PokerServerMakeApplicationCoverageTestCase.test00_missingConfigFileGivenOnCLI):
	Wrote test.
	(PokerServerMakeServiceCoverageTestCase.test08_plainREST): Wrote test.
	(PokerServerMakeServiceCoverageTestCase.test09_plainHTTP): Wrote test.
	(PokerServerMakeApplicationCoverageTestCase): Wrote test class.
	(PokerServerMakeServiceCoverageTestCase.test_trynow_10_everythingOn):
	Wrote test.
	(PokerServerRunCoverageTestCase): Created class.
	(PokerServerRunCoverageTestCase.test00_missingConfigFileGivenOnCLI):
	Wrote test.
	(PokerServerRunCoverageTestCase.test01_missingConfigFileGivenOnCLI_forceReactorInstall):
	Wrote test.

2009-05-16  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerserver.py.in (PokerServerMakeServiceTestCase):
	Renamed class.
	(PokerServerMakeServiceCoverageTestCase): Created class.
	(PokerServerMakeServiceCoverageTestCase.test00_missingSettingsFile):
	Wrote test.
	(PokerServerMakeServiceCoverageTestCase.test01_emptySettingsFile):
	Wrote test.
	(PokerServerMakeServiceManholeTestCase.test01_manhole): Added
	additional asserts.
	(PokerServerMakeServiceCoverageTestCase.test02_tcpSsl_hasSSL):
	Wrote test.
	(PokerServerMakeServiceCoverageTestCase.test03_tcpSsl_hasSSL_noPemFile):
	Wrote test.
	(PokerServerMakeServiceManholeTestCase.tearDown): Changed
	os.remove() to shutil.rmtree()
	(PokerServerMakeServiceCoverageTestCase.createPemFile): Created
	helper method.
	(PokerServerMakeServiceCoverageTestCase.createConfig): Created
	helper method.
	(PokerServerMakeServiceCoverageTestCase.test04_httpSSL_hasSSL_noPemFile):
	Wrote test.
	(PokerServerMakeServiceCoverageTestCase.test05_httpSSL_hasSSL):
	Wrote test.
	(PokerServerMakeServiceCoverageTestCase.test06_restSSL_hasSSL_noPemFile):
	Wrote test.
	(PokerServerMakeServiceCoverageTestCase.test07_restSSL_hasSSL):
	Wrote test.

	* tests/Makefile.am (TESTS): Added test-proxy.py.

	* configure.ac: Added test-proxy.py.

	* tests/run.in (COVERAGE_100_PERCENT): Added
	pokernetwork/proxy.py!

2009-05-10  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-currencyclient.py.in
	(ErrorCondtionsCurrencyClientTestCase.test04_commit_commitResultIsFalse.verifyError)
	(ErrorCondtionsCurrencyClientTestCase.test03_checkNote_checkNoteResultIsFalse.verifyError):
	reactor callback may occur after tearDown().
	* tests/test-proxy.py.in (ConnectorTestCase): Created class.
	(ConnectorTestCase.test01_connector_setProxyHost_noColon): Wrote
	test.
	(ConnectorTestCase.test02_connector_setProxyHost_colonOnRight):
	Wrote test.
	(ConnectorTestCase.test03_connector_setProxyHost_portIsNotInt):
	Wrote test.
	(ConnectorTestCase.test04_connector_setProxyHost_colonOnLeft):
	Wrote test.
	(ConnectorTestCase.test05_connector_setProxyHost_fullyValid):
	Wrote test.
	(ConnectorTestCase.test07_connector_getDestination_contextIsNone):
	Wrote test.
	(ConnectorTestCase.test08_connector_getDestination_contextIsFalse):
	Wrote test.
	(ConnectorTestCase.test09_connector_getDestination_contextIsString):
	Wrote test.
	(ConnectorTestCase.test10_connector_getDestination_contextIsTrue):
	Wrote test.

2009-05-06  Loic Dachary <loic@dachary.org>

	* po/da.po, po/de.po, po/en.po, po/en_CA.po, po/en_US.po, po/es.po,
	  po/fi.po, po/fr.po, po/fr_BE.po, po/fr_CA.po, po/fr_FX.po,
	  po/it.po, po/nb.po, po/nl.po, po/pt.po, po/sv.po: updated
	  translations
	* tests/conf/poker.client.xml.in: bump version 1.7.5
	* conf/poker.bot.xml.in, conf/poker.client.xml.in,
	  conf/poker.server.xml.in, examples/poker.bot.xml,
	  examples/poker.server-monotone.xml, examples/poker.server.xml,
	  pokerclient2d/poker2d.xml.in, pokerprizes/poker.prizes.xml.in,
	  pokerstats/poker.stats.xml.in: bump version 1.7.5

2009-05-05  Loic Dachary <loic@dachary.org>

	* ChangeLog, NEWS, debian/changelog, pokernetwork/__init__.py: bump
	  version to 1.7.5

2009-05-05  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.test15_runTourney)
	(TourneyManagerTestCase.test01_no_rank): use search_output instead
	of direct comparison to get_messages() in case other verbosity
	causes confusion.

2009-05-03  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-proxy.py.in
	(ProxyClientProtocoTestCase.test05_Client_getPeer_contextIsNone):
	Wrote test.
	(ProxyClientProtocoTestCase.test06_Client_getPeer_contextIsFalse):
	Wrote test.
	(ProxyClientProtocoTestCase.test07_Client_getPeer_contextIsString):
	Wrote test.
	(ProxyClientProtocoTestCase.test08_Client_getPeer_contextIsTrue):
	Wrote test.
	(ProxyClientProtocoTestCase.setUp.sslClientInit): Added assignment
	of clientSelf.addr
	(ProxyClientProtocoTestCase.setUp.sslClientStartReading): Added
	method; set ssl.Client.startReading to it on setUp().
	(ProxyClientProtocoTestCase.tearDown): Restored
	ssl.Client.startReading
	(ProxyClientProtocoTestCase.test09_Client_connectDone_usesProxy):
	Wrote test.
	(ProxyClientProtocoTestCase.setUp.connectProtocolMakeConnection):
	Wrote method.
	(ProxyClientProtocoTestCase.tearDown): Added
	ConnectProtocol.makeConnection.
	(ProxyClientTestCase.setUp, ProxyClientTestCase.tearDown): Added
	startTLS and startWriting replacements.
	(ProxyClientTestCase.setUp): Switched callCounts as a dict
	(ProxyClientTestCase.test10_Client_connectDone_noProxy_noContextFactory):
	Wrote test.
	(ProxyClientTestCase.test11_Client_connectDone_noProxy_withContextFactory):
	Wrote test.

2009-05-02  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-proxy.py.in (ProxyClientProtocoTestCase): Created
	class.
	(ProxyConnectProtocolTestCase): Renamed ProxyTestCase ->
	ProxyConnectProtocolTestCase.
	(ProxyClientProtocoTestCase.setUp): Wrote method.
	(ProxyClientProtocoTestCase.tearDown): Wrote method.
	(ProxyClientProtocoTestCase.test00_Client_init): Wrote test.
	(MockSocket): Created class.
	(ProxyClientProtocoTestCase.test01_Client_getHost_contextIsNone):
	Wrote test.
	(ProxyClientProtocoTestCase.test02_Client_getHost_contextIsFalse):
	Wrote test.
	(ProxyClientProtocoTestCase.test03_Client_getHost_contextIsString):
	Wrote test.

2009-04-26  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-proxy.py.in
	(ProxyTestCase.test00_ConnectProtocol_init): Wrote test.
	(MockTransport): Created mock up.
	(ProxyTestCase.test01_ConnectProtocol_connectionMade): Wrote test.
	(MockTransport._proxyConnectDone): Added method.
	(ProxyTestCase.test02_ConnectProtocol_dataReceived_noNewlinesThere):
	Wrote test.
	(ProxyTestCase.test03_ConnectProtocol_dataReceived_newlinesThere_badString):
	Wrote test.
	(ProxyTestCase.test04_ConnectProtocol_dataReceived_newlinesThere_GoodHTTPString):
	Wrote test.
	(ProxyTestCase.test05_ConnectProtocol_dataReceived_HTTP10ConsideredHarmful):
	Wrote test.
	(ProxyConnectProtocolTestCase): Renamed ProxyTestCase to
	ProxyConnectProtocolTestCase.

2009-04-19  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/run.in (COVERAGE_100_PERCENT): Added pokermemchache.py.

	* tests/test-pokermemcache.py.in
	(MemcacheTestCase.test03_checkKeyNoString): Wrote test.

2009-04-18  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/run.in (COVERAGE_100_PERCENT): added currencyclient!

	* tests/test-currencyclient.py.in
	(CurrencyClientTestCase.test07_1_breakNote_oddLeftOver): Wrote test.
	(Run): Test classes were not loaded correctly.
	(ErrorCondtionsCurrencyClientTestCase): Created additional test class.
	(ErrorCondtionsCurrencyClientTestCase.test01_parseResultNote_InvalidResult):
	Wrote test.
	(ErrorCondtionsCurrencyClientTestCase.test02_commit_multiLineResult):
	Wrote test.
	(FakeCurrencyClientTestCase.test10_breakNote_FakeCurrencyFailure):
	Wrote test.
	(ErrorCondtionsCurrencyClientTestCase.test03_checkNote_checkNoteResultIsFalse):
	Wrote test.
	(ErrorCondtionsCurrencyClientTestCase.test04_commit_commitResultIsFalse):
	Wrote test.

	* tests/test-pokerdatabase.py.in
	(PokerDatabaseTestCase.test11_confirmLiteralMethodPassThrough):
	Wrote test, yielding 100% coverage.

2009-04-14  Loic Dachary <loic@dachary.org>

	* po/poker2d.pot: the .pot must be in the SVN tree to avoid
	  recomputation
	* debian/poker-web.postinst, debian/python-poker-network.postrm:
	  add --debconf-ok option to ucf

2009-04-12  Loic Dachary <loic@dachary.org>

 	* Release 1.7.4

	* pokerclient2d/python-poker2d.desktop: Miniicon is not a valid
	  keywork
	* pokerclient2d/poker2d.6.in, pokernetwork/pokerbot.8.in,
	  pokernetwork/pokerserver.8.in: change comments for nroff files
	* debian/python-poker-prizes.install: do not include .pyc
	* debian/python-poker-network.postinst: use which instead of type
	  do not use absolute path names for binaries
	* debian/poker-web.preinst: do not explicitly include debconf
	  script
	* debian/control, debian/control.unstable: fix dependencies to
	  match current policy
	* debian/compat: compat 4 is obsolete
	* debian/changelog: fix pending debian bugs
	* debian/po/sv.po: Swedish strings for poker-network debconf
	* debian/python-poker-network.init: pv=$(python -c 'import sys;
	  print sys.version[:3]')
	  botscript=/usr/lib/python$pv/site-packages/pokernetwork/pokerbot.py
	  instead of wrong guessing

2009-04-10  Loic Dachary <loic@dachary.org>

	* debian/python-poker2d.install: do not ship useless .la
	* debian/control, debian/control.unstable: add python-central to
	  source list
	* tests/test-webservice.py.in: Do not set cookie to None because
	  twisted-8.2 barks on it.
	  Restore XMLRPCPokerServiceTestCase tests.
	* pokernetwork/proxyfilter.py: setResponsCode must be a long/int as
	  of python-2.5

2009-04-05  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/run.in (COVERAGE_100_PERCENT): Added pokertable.py!

	* tests/test-pokertable.py.in
	(PokerTableTestCase.test43_gameStateIsMuckonAutoDealSched): Added
	test for being in GAME_STATE_MUCK when autodeal is requested.
	(PokerTableTestCase.test45_cancelMuckTimer_hollowedOutTimer):
	Wrote test.
	(PokerTableTestCase.test46_updatePlayerTimers_hollowedOutGameAndMockedTableVals):
	Wrote test.

2009-04-04  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokertable.py.in
	(PokerTableTestCase.test01_8_testClientsBogusPokerProcessingHand):
	Wrote test to cover uncovered section in pokertable.autoDeal()
	(PokerTableTestCaseWithPredefinedDecksAndNoAutoDeal.test01_8_testClientsBogusPokerProcessingHand):
	override this method.

	* tests/Makefile.am (TESTS): added test-pokerservice-load.py to list.

2009-03-29  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/pokerservice.py (PokerXML.getArguments)
	(PokerXML.maps2result): raise error rather than pass on these
	methods. Fixes sr #2274

	* tests/test-pokerservice.py.in
	(PokerXMLCoverageTestCase.test04_render): Replaced with
	alternative version.
	(PokerXMLCoverageTestCase.test04a_map2result): Added test from
	alternative list.

	* tests/test-pokerservice-load.py.in
	(LogicThatOccursDuringLoadTestCase.test01_openSSLMissing_badTwistedLoad_soapPyMissing):
	Renamed and added soapPy coverage.

	* tests/test-pokerservice.py.in
	(PokerXMLCoverageTestCase.test06_errorFunction): Wrote test.

2009-03-15  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice-load.py.in (MissingOpenSSLTestCase):
	Created TestCase.
	(MissingOpenSSLTestCase.test01_openSSLMissing): Wrote test.
	(MissingOpenSSLTestCase.test01_openSSLMissing_badTwistedLoad):
	combined test02 into this one.

	* pokernetwork/pokerservice.py: Removed OpenSSL.SSL import that
	was above the try block.  The try block will execute it, and works
	correctly without failure when it is not present.

2009-03-14  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.test00_14_languageEmptyStringForSeperate):
	Wrote test.
	(TourneyManagerTestCase.test05_moreThanOneTourneyRow): Wrote test.

2009-03-08  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerSOAPCoverageTestCase.test01_render_dummySOAPCall): Created test.

2009-03-07  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in (PokerRESTCoverageTestCase.test02_render_withNewSession_withjsonp.MockServiceWithoutAvatar.__init__):
	Created avatar shouldn't be None because hasattr is used PokerXML.render()
	to see if it needs creation.
	(MockSessionForPokerREST): Should derive from
	MockSessionForPokerXML, not MockServiceForPokerXML
	(MockServiceForPokerXML.createAvatar): Check that you have avatar
	attribute; subclasses may not have it.
	(MockRequestForRESTWithSession.getSession): saved session created
	for later testing.
	(PokerRESTCoverageTestCase.test03_render_withSessionYes_HandleMultiplePackets):
	Wrote test.
	(PokerRESTCoverageTestCase.test04_render_withSessionYes_logout):
	Wrote test.
	(PokerRESTCoverageTestCase.test05_render_withSessionYes_Deferred):
	Wrote test.
	(PokerRESTCoverageTestCase.test06_render_clearSessions): Wrote test.

	* tests/test-pokerservice.py.in
	(MockAvatarForPokerXML.handlePacket): Wrote method.

2009-03-06  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerRESTCoverageTestCase.test01_render_dummyRESTCall): Wrote test.

2009-02-17  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in (MockSessionForPokerXML): Created
	mockup class.
	(MockServiceForPokerXML): Created mockup class.
	(MockRequestForPokerXML): Created mockup class.
	(PokerXMLCoverageTestCase.test04_render): Wrote test.
	(PokerXMLCoverageTestCase.test05_render_noEncoding): Wrote test.
	(PokerXMLCoverageTestCase.alternative_test04_render): Created
	alternative test, see sr #2274.
	(PokerXMLCoverageTestCase.alternative_test04a_map2result): Created
	alternative test, see sr #2274.
	(PokerXMLCoverageTestCase.alternative_test05_render_noEncoding): Created
	alternative test, see sr #2274.
	(PokerXMLRPCCoverageTestCase.test_trynow_01_render_dummyXMLCall):
	Wrote test.

2009-02-16  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in (PokerRestTreeCoverageTestCase):
	Created test case class.
	(PokerRestTreeCoverageTestCase.setUp): Cut-and-pasted method.
	(PokerRestTreeCoverageTestCase.tearDown): Cut-and-pasted method.
	(PokerRestTreeCoverageTestCase.test01_init): Wrote test.
	(PokerRestTreeCoverageTestCase.test02_render): Wrote test.
	(Run): Added PokerRestTreeCoverageTestCase.
	(PokerXMLCoverageTestCase): Create test case class.
	(PokerXMLCoverageTestCase.setUp): Cut-and-pasted method.
	(PokerXMLCoverageTestCase.tearDown): Cut-and-pasted method.
	(Run): Added PokerXMLCoverageTestCase.
	(PokerXMLCoverageTestCase.test01_getRequestCookie_hasInstanceVariable):
	Wrote test.
	(PokerXMLCoverageTestCase.test02_getRequestCookie_callsGetCookie):
	Wrote test.
	(PokerXMLCoverageTestCase.test03_init): Wrote test.

	* pokernetwork/pokerservice.py (PokerService.createTable): Added
	comment about sr #2273.

	* tests/test-pokerservice.py.in
	(PokerTreeCoverageTestCase.test03_render): Wrote test.
	(PokerServiceCoverageTests.test65_createTable_insertFailsAndLasRowNotThere):
	Only three lines of output sometimes; removed duplication of this test.
	(PokerServiceCoverageTests.test66_deleteTable_deleteRowsNot1.MockCursor.statementActions):
	Removed extraneous print.
	(PokerServiceCoverageTests.test65a_createTable_insertFailsProperly):
	Wrote test, but commented out (see sr #2773).
	(PokerServiceCoverageTests.test65b_createTable_insertSucceedsWithLargerThan1ReturnedWithLastRowThere):
	Wrote test.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.variousPacketsWithStringOrSinglePacketReturn):
	Fixed comment that was incorrectly mentioning a stdout
	redirection.

2009-02-15  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test66_deleteTable_deleteRowsNot1):
	Wrote test.
	(PokerServiceCoverageTests.test67_broadcast): Wrote test.
	(PokerServiceCoverageTests.test68_messageCheck): Wrote test.
	(SSLContextFactoryCoverage): Created new test set.
	(SSLContextFactoryCoverage.test01_initNoHeader): Wrote test.
	(SSLContextFactoryCoverage.test02_initNoneExist): Wrote test.
	(SSLContextFactoryCoverage.test03_oneGoodFile): Wrote test.
	(SSLContextFactoryCoverage.test04_secondFileFavored): Wrote test.
	(SSLContextFactoryCoverage.test05_getContext): Wrote test.
	(PokerTreeCoverageTestCase): Created new test set.
	(PokerTreeCoverageTestCase.setUp): Wrote method.
	(PokerTreeCoverageTestCase.tearDown): Wrote method.
	(PokerTreeCoverageTestCase.test01_init): Wrote test.
	(PokerTreeCoverageTestCase.test02_initNoSoap): Wrote test.

2009-02-14  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test49_setAccount_lastrowidFailure):
	Wrote test.
	(PokerServiceCoverageTests.test50_setPlayerInfo_success): Wrote
	test.
	(PokerServiceCoverageTests.test51_setPlayerInfo_badUpdateValue):
	Wrote test.
	(PokerServiceCoverageTests.test52_getPlayerImage_serial0): Wrote
	test.
	(PokerServiceCoverageTests.test53_getPlayerImage_selectRowCount3):
	Wrote test.
	(PokerServiceCoverageTests.test54_setPlayerImage_rowcountwrong):
	Wrote test.
	(PokerServiceCoverageTests.test55_buyInPlayer_currencySerialNone):
	Wrote test.
	(PokerServiceCoverageTests.test56_buyInPlayer_updateRowcountBad):
	Wrote test.
	(PokerServiceCoverageTests.test57_buyInPlayer_insertRowcountBad):
	Wrote test.
	(PokerServiceCoverageTests.test58_movePlayer_selectRowCount0WithMoneyNone):
	Wrote test.
	(PokerServiceCoverageTests.test59_movePlayer_selectRowCount1WithMoneyPositiveUpdateRowCount3):
	Wrote test.
	(PokerServiceCoverageTests.test60_leavePlayer_updateRowCountTooHigh):
	Wrote test.
	(PokerServiceCoverageTests.test61_updatePlayerRake_amountAsZero):
	Wrote test.
	(PokerServiceCoverageTests.test62_updatePlayerRake_updateReturns0Rows):
	Wrote test.
	(PokerServiceCoverageTests.test63_updatePlayerMoney_amountAsZero):
	Wrote test.
	(PokerServiceCoverageTests.test64_updatePlayerMoney_updateReturns0Rows):
	Wrote test.
	(PokerServiceCoverageTests.test65_createTable_insertFailsAndLasRowNotThere):
	Wrote test.

2009-02-12  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test48_setAccount_badRowcountOnInsert):
	Wrote test.

2009-02-11  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test44_getPlayerInfo_serialIs0): Wrote test.
	(PokerServiceCoverageTests.test45_getPlayerInfo_badRowCount):
	Wrote test.
	(PokerServiceCoverageTests.test46_getUserInfo_badRowCount): Wrote
	test.
	(PokerServiceCoverageTests.test47_setPesonalInfo_badRowCount):
	Wrote test.

	* pokernetwork/pokerservice.py (PokerService.getPlayerInfo): Added
	coment about locale argument.

	* pokernetwork/pokerpackets.py (PacketPokerPlayerInfo): Added
	comment note about locale argument.

	* tests/test-pokerservice.py.in (MockCursorBase.execute): Added
	sql statement on failUnless.
	(PokerServiceCoverageTests.test40_cleanupTourneys_oneFoundFromPrimarySelect):
	Wrote test.
	(MockCursorBase.close, MockCursorBase.__init__): Added closedCount
	instance variable.
	(PokerServiceCoverageTests.test41_getMoney_bigRowCount): Wrote test.
	(PokerServiceCoverageTests.test42_cashQuery): Wrote test.
	(PokerServiceCoverageTests.test43_cashOutCommit_commitFailure):
	Wrote test.

2009-02-10  Loic Dachary <loic@dachary.org>

	* Makefile.am, database/1.7.3-1.7.4.sql, database/schema.sql.in:
	  Add index to tourneys and user2tourney for performance and reduce
	  the size of the state field

2009-02-09  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py: simplify call to pokerprizes and
	  removed obsolete comment
	* conf/poker.server.xml.in, pokernetwork/pokerservice.py,
	  tests/test-pokerservice.py.in: tourneySelectInfo loads is moved
	  to a separate function that is called by startServices instead of
	  the __init__ function because the Handle function of the
	  tourneySelectInfo module may require the database

2009-02-06  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test38_eventTable_serialZero): Wrote test.
	(PokerServiceCoverageTests.test39_statsTable): Wrote test.

2009-02-02  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test36_saveHand_badRowcountOnUpdate):
	Wrote test.

2009-02-01  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test34_getHandHistory_playerProhibited):
	Wrote test.

2009-01-29  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test32_getHandSerial_coverCursorWithInsertID):
	Wrote test.
	(PokerServiceCoverageTests.test31_getHandSerial_coverCursorWithLastrowid):
	Wrote test.
	(PokerServiceCoverageTests.test33_getHandHistory_failedLoadHand):
	Wrote test.

2009-01-27  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in (PokerServiceCoverageTests): Wrote
	test.
	(PokerServiceCoverageTests.test29_loadHand_confirm_backslash_r_replaced):
	This test had weirdness.  fixed.

2009-01-26  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test27_loadHand_noRowFound): Wrote test.
	(PokerServiceCoverageTests.test28_loadHand_row.): Wrote test.
	(PokerServiceCoverageTests.test29_loadHand_confirm_backslash_r_replaced):
	Wrote test.

2009-01-23  Loic Dachary <loic@dachary.org>

	* conf/poker.server.xml.in: TourneyAttr comment & example removed

2009-01-15  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokersql.py: set verbosity level to zero always as
	  it interferes with the cgi-bin output

2009-01-14  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py: when reading the XML from a string,
	  set the list of directories to ['.'] because it is most likely
	  useful for test purposes
	* Makefile.am, pokerprizes/Makefile.am: fix missing or wrong file
	  names in the distribution list
	* Makefile.am, conf/poker.server.xml.in, configure.ac,
	  debian/control, pokernetwork/pokeravatar.py,
	  pokernetwork/pokerpackets.py, pokernetwork/pokerservice.py,
	  pokernetwork/tourneyattrs.py, pokerprizes/Makefile.am,
	  pokerprizes/prizes.py, pokerprizes/schema.sql,
	  pokerprizes/schema.sql.in, pokerprizes/test-prizes.py.in,
	  pokerprizes/tourneyselectinfo.py, pokerstats/poker.stats.xml.in,
	  tests/Makefile.am, tests/test-pokeravatar.py.in,
	  tests/test-pokerservice.py.in, tests/test-protocol.py.in,
	  tests/test-tourneyattrs.py.in, tests/testsettings.xml,
	  tests/testtourney_select_info.py,
	  tests/testtourney_select_info_no_call.py: stub implementation of
	  a plugin infrastructure for additional information attached to a
	  tournament, with an example : prizes

2009-01-13  Loic Dachary <loic@dachary.org>

	* debian/python-poker-prizes.config,
	  debian/python-poker-prizes.install,
	  debian/python-poker-prizes.postinst,
	  debian/python-poker-prizes.postrm,
	  debian/python-poker-prizes.prerm: python-poker-prizes support
	  files
	* pokerprizes, pokerprizes/Makefile.am, pokerprizes/__init__.py,
	  pokerprizes/poker.prizes.xml.in, pokerprizes/prizes.py,
	  pokerprizes/run.in, pokerprizes/schema.sql,
	  pokerprizes/test-prizes.py.in, pokerprizes/tourneyselectinfo.py:
	  poker prizes stub, as a useful example of information associated
	  to tournaments

2009-01-06  Loic Dachary <loic@dachary.org>

	* Makefile.am, conf/poker.server.xml.in, configure.ac,
	  debian/python-poker-network.install, pokernetwork/pokerserver.py,
	  pokernetwork/pokersql.in, pokernetwork/pokersql.py,
	  tests/pokersql.xml, tests/pokersqlfail.xml: pokersql is a cgi-bin
	  script that will run SQL queries using the same database and
	  permissions as the installed poker server. It is intended as the
	  backend for a backoffice client. It is disabled by default with
	  the admin="false" attribute from the poker.server.xml
	  configuration file.

2008-12-28  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-tourneytablebalance.py.in
	(TourneyTableBalanceTestCase.test01_sixPlayersTourney5PerTable):
	Wrote test.

2008-12-27  Loic Dachary <loic@dachary.org>

	* ChangeLog, NEWS, conf/poker.bot.xml.in, conf/poker.client.xml.in,
	  conf/poker.server.xml.in, debian/changelog,
	  examples/poker.bot.xml, examples/poker.server-monotone.xml,
	  examples/poker.server.xml, pokerclient2d/poker2d.xml.in,
	  pokernetwork/__init__.py, tests/conf/poker.client.xml.in: bump to
	  version 1.7.4
	* AUTHORS: update proppy mail

2008-12-26  Loic Dachary <loic@dachary.org>

 	* Release 1.7.3

	* configure.ac: AC_PROG_CXX & al are only used if poker2d is
	  enabled but needs to be tested outside
	  of the conditional to prevent autoconf misbehaviour.
	  https://gna.org/support/?2197

2008-12-23  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokergameclient.py: player_list_hint member holds
	  the player_list provided by the IN_GAME packet

	* pokernetwork/pokerexplain.py, tests/test-pokerexplain.py.in:
	  IN_GAME packet carries an authoritative list of players that must
	  be set instead of the list computed by the game instance as a
	  result of the beginTurn instance. When START packet is
	  interpreted by the game instance, it first resets the wait_for
	  flag of each player to False (save the first_round value which is
	  a temporary way to exclude players that insert themselves in the
	  game while resolving the blinds). Because the wait_for flag is
	  set to False for all players, the list of player participating in
	  the game will be different from the list maintained by the
	  server. As a result POSITION packets will not designate the
	  expected players and all subsequent packets will be
	  misinterpreted.

	* tests/conf/poker.client.xml.in: bump version 1.7.3

2008-12-23  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in:
	  discard explain instance, and schedule avatar destruction, when
	  pokeravatar.explain throws

2008-12-22  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in (MockDatabase): Took class out of
	tests for reuse.
	(MockCursorBase): Abstracted MockCursor.
	(PokerServiceCoverageTests.test26_tourneyRegister_user2tourneyFailure):
	Adapted test to use new classes.
	(TourneyUnregisterTestCase): Wrote test.

2008-12-22  Loic Dachary <loic@dachary.org>

	* conf/poker.bot.xml.in, conf/poker.client.xml.in,
	  conf/poker.server.xml.in, examples/poker.bot.xml,
	  examples/poker.server-monotone.xml, examples/poker.server.xml,
	  pokerclient2d/poker2d.xml.in: bump version 1.7.3
	* pokerclient2d/data/interface/interface.glade,
	  pokerui/pokerrenderer.py: s/bring at the table/bring to the
	  table/
	* ChangeLog, NEWS, debian/changelog, pokernetwork/__init__.py: bump
	  version 1.7.3
	* tests/test-string.py.in: avoid translation sensitivity

2008-12-21  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test14_tourneyFinished_prizeNegative.MockDatabase):
	added literal method.
	(PokerServiceCoverageTests.test14_tourneyFinished_prizeNegative):
	Fixed tourneyDeleteRoute() failures here.
	(PokerServiceTestCase.test00_13_anotherBadEncoding): Added another
	coverage for badEncoding names.
	(PokerServiceCoverageTests.test26_tourneyRegister_user2tourneyFailure):
	Wrote test.

2008-12-21  Loic Dachary <loic@dachary.org>

 	* Release 1.7.2

	* pokernetwork/pokerservice.py: keep old tourneys in core no longer
	  than one hour
	* pokernetwork/pokersite.py, tests/test-pokersite.py.in: Incoming
	  requests must not be chained otherwise a lag on the first request
	  will delay all requests. This constraint was originaly
	  implemented so that when R1 is received before R2; R1 does not
	  return before R2. However, this may only adversively impact the
	  client if it sent R2 before getting an answer to R1 is received.
	  However, jpoker is designed to not send a request before the
	  answer to the previous request is received. A client with a
	  different design, sending a number async requests and expecting
	  them to come back in the same order, would be very difficult to
	  implement without numbering the packets.

2008-12-21  Johan Euphrosine <proppy@aminche.com>

	* tests/Makefile.am: add missing poker-network test to Makefile.am

2008-12-20  Johan Euphrosine <proppy@aminche.com>

	* tests/test-pokerserver.py.in: add test-pokerserver for testing
	  manhole support
	* conf/poker.server.xml.in, configure.ac,
	  pokernetwork/pokerserver.py: add optional manhole service to
	  pokerserver (default login/password: admin/admin)
	* configure.ac, tests/test-leak-no-trial.py.in,
	  tests/test-leak.py.in: add test-leak-no-trial, remove failing
	  testXX_getPage, set VERBOSE_T=-2 in test-leak compile-command,
	  and add cleanMemcache callback to testXX_ping

2008-12-20  Loic Dachary <loic@dachary.org>

	* tests/testmessages.py: if VERBOSE < -1 do not store messages
	* tests/test-leak.py.in: hack reactor to never delay cancelled
	  delayedCall removal

2008-12-20  Johan Euphrosine <proppy@aminche.com>

	* tests/test-leak.py.in: new leak test result (docstring) based on
	  VIRT instead of RES

2008-12-20  Loic Dachary <loic@dachary.org>

	* tests/test-leak.py.in: use clear() instead of = {} so that all
	  references are updated

2008-12-20  Johan Euphrosine <proppy@aminche.com>

	* tests/test-leak.py.in: remove unused proxy setup, and clean
	  pokermemcache after each step, update leak result
	* tests/test-leak.py.in: add test-leak.py.in top result in
	  docstrings

2008-12-19  Johan Euphrosine <proppy@aminche.com>

	* configure.ac, tests/test-leak-exarkun.py.in,
	  tests/test-leak-reference.py.in, tests/test-leak.py.in: add
	  test-leak-* suites
	* tests/test-proxyfilter.py.in: fix test-proxy-filter method name

2008-12-10  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  PacketPokerPoll game_id + tourney_serial => used in the route
	  selection when > 0

2008-12-09  Loic Dachary <loic@dachary.org>

 	* Release 1.7.1

	* tests/test-pokerservice.py.in: cover all tournament prizes
	  logical cases
	* pokernetwork/pokerservice.py: tourney getPrize is called with a
	  player count that depends sit&go and with the guarantee_amount
	  argument
	* tests/test-pokersite.py.in: makeSessionFromUid does not set
	  memcache entry
	* tests/test-pokersite.py.in: rename and improve updateSession
	  logic coverage

2008-12-08  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/pokerservice.py (PokerService.tourneyManager):
	prizesTable() => prizes() for PokerTournament; added condition to
	properly fill rank2prize when no tourney object.

	* tests/test-pokerservice.py.in
	(TourneyManagerTestCase.test06_tourneyInDB): Wrote test to show
	sr#2207.

2008-12-08  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokersite.py, tests/test-pokersite.py.in: Move
	  blacklisting of sessions from getSession to updateSession.
	  getSession has no side effect on memcache.
	  updateSession updates the memcache according to the changes that
	  occured since getSession was called.

2008-12-06  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokersite.py, tests/test-pokersite.py.in: the
	  decision to keep the session or not has been separated from the
	  update of the memcache to reflect the state of the session. The
	  function persistSession now decides that the session is expires
	  based on the fact that the avatar is connected to tables or
	  tournaments.

2008-12-05  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in:
	  protect sendPacket from explain failures. Because sendPacket is
	  called from pokerservice.update, an exception in this area is of
	  great consequence. Instead, log the error and send it back as a
	  single error packet.

2008-12-05  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokermemcache.py, pokernetwork/pokersite.py,
	  tests/test-pokermemcache.py.in, tests/test-pokersite.py.in:
	  replace AssertionError with BlacklistedSession in pokersite when
	  two session use the same serial

2008-12-04  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py: Use prizesTable instead of prizes
	  because the later returns None unless the tournament is in
	  running mode.
	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  GetTourneyManager is routed
	* po/da.po, po/de.po, po/en.po, po/en_CA.po, po/en_US.po, po/es.po,
	  po/fi.po, po/fr.po, po/fr_BE.po, po/fr_CA.po, po/fr_FX.po,
	  po/it.po, po/nb.po, po/nl.po, po/pt.po, po/sv.po: update po files
	  creation date

2008-12-03  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in: when
	  relogin the last wins https://gna.org/support/?2202

	* tests/test-pokerservice.py.in: Close the database in teardown.
	  Create a new database instance instead of sharing with services.

2008-12-03  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokersite.py, tests/test-pokersite.py.in:
	  PokerResource log client ip as prefix of errors and messages
	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  restore tourney route when cleanupTourney restore regular
	  registering tourneys

2008-12-02  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokersite.py.in
	(RequestTestCase.test02_ipNumberProxy.Channel): Wrote test.

	* pokernetwork/pokersite.py (Request.getClientIP): Wrote override
	to check 'x-forwarded-for' and 'x-cluster-client-ip' first.

	* tests/test-pokerservice.py.in
	(TourneyManagerTestCase.test04_bogusTourneySerial): Wrote test.
	(TourneyManagerTestCase): Wrote stub for test.

	* pokernetwork/pokerpackets.py (PacketPokerGetTourneyManager):
	Documented packet, added error code.

	* pokernetwork/pokerservice.py (PokerService.tourneyManager):
	check cursour.rowcount on SELECT * FROM tourneys, give appropriate
	verbose output/error message, return PacketPokerError if no rows
	found.

	* tests/test-pokerservice.py.in
	(TourneyManagerTestCase.test04_bogusTourneySerial): Wrote test.

	* configure.ac (AC_PROG_CPP): AC_PROG_CPP appears to be
	deprecated; switched to AC_PROG_CXX

	* configure.ac (poker2d): Added PYTHON_2_6 support.

	* pokerclient2d/Makefile.am (PYTHON_2_6): Added Python 2.6 support
	that mimics the 2.5 support.

2008-12-02  Loic Dachary <loic@dachary.org>

	* pokernetwork/countfilter.py, tests/test-countfilter.py.in: Do not
	  use request.getSession() but extract the session cookie using the
	  same code as pokersite.py.
	  Calling getSession may create a session if it does not already
	  exists, which is an undesirable side effect.

2008-12-02  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py, pokernetwork/pokerservice.py,
	  tests/test-pokeravatar.py.in, tests/test-pokerservice.py.in:
	  poker-network send PacketPokerTourneyFinish only if polling for a
	  tourney_serial not in avatar.tourneys

2008-12-01  Loic Dachary <loic@dachary.org>

	* database/schema.sql.in: set start time in the past to avoid race
	  conditions

2008-11-30  Bradley M. Kuhn  <bkuhn@ebb.org>

	* config/python.m4 (AM_PATH_PYTHON): Added python2.6 support.

	* config/ccpython.m4 (ALL_CC_PYTHON): Added python2.6 support.

	* database/1.6.0-1.7.0.sql: en_US.UTF-8 is no longer default locale,
	en_US by itself is.

	* database/schema.sql.in: en_US.UTF-8 is no longer default locale,
	en_US by itself is.

	* pokernetwork/pokerservice.py (PokerService.getPlayerInfo):
	en_US.UTF-8 is no longer default locale, en_US by itself is.

2008-11-29  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.startHandAndReceiveCards): test no longer
	fails when fr_FR not present; doesn't need adjustor for that.
	(PokerAvatarTestCase.setLocale): test no longer fails when fr_FR
	not present; doesn't need adjustor for that.

2008-11-29  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.configValues): Added check for
	only-English-available message on failed locale lookup.

	* pokernetwork/pokerservice.py (PokerService._lookupTranslationFunc):
	Fixed required call to gettext object install().

2008-11-29  Loic Dachary <loic@dachary.org>

	* tests/test-pokersite.py.in: locale2translationFunc mockup taks an
	  additional argument

2008-11-29  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	Reverted Loic's changes below to these files in favor of mine from
	last night.

2008-11-29  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in: all
	  messages returned by gettext are encoded in iso-8859-1
	* pokernetwork/pokertable.py, tests/test-pokertable.py.in: protect
	  the update function of pokertable against reentrance and print
	  stacktrace for better diagnostic when it happens

2008-11-28  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarNoClientServerTestCase.MockService.__init__): Added
	encoding option to transFunc.
	(PokerAvatarTestCase.test71_setLocaleAlwaysValid): Changed locale
	string.
	(PokerAvatarTestCase.test15_handPlay): Changed locale strings.
	(PokerAvatarTestCase.test15a_handPlay_dbLocalesAndOverridesThereof):
	Changed locale strings.
	(PokerAvatarTestCase.startHandAndReceiveCards): Changed locale
	strings.
	(PokerAvatarNoClientServerTestCase.test03_relogin_localeNotFound):
	Rewrote lambda as transFunc; added arg.  Removed expectation of
	message.
	(PokerAvatarTestCase.setLocale): Added check for verbosity message
	on invalid locale.

	* pokernetwork/pokersite.py (fromutf8, toutf8): Added FIXME
	comment.

	* pokernetwork/pokerpackets.py (PacketPokerSetLocale): Changed
	documentation string to match what is actually expected.

	* pokernetwork/pokeravatar.py (PokerAvatar.setLocale): Removed
	error function; locale2translationFunc now has verbose message.
	Added default encoding call and comment.

	* conf/poker.server.xml.in: Added non-country supported languages.

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.test23_localeChecks): Wrote test.

	* pokernetwork/pokerservice.py
	(PokerService.locale2translationFunc): Added codeset argument and
	auto-append it before lookup.  Added warning message when locale
	not found.

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.test00_12_badEncoding): Wrote test.

	* pokernetwork/pokerservice.py
	(PokerService._separateCodesetFromLocale): Wrote function.
	(PokerService._lookupTranslationFunc): Added proper codeset
	support with error handling.

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.test23_localeChecks): Added stub for test.

2008-11-28  Loic Dachary <loic@dachary.org>

	* conf/poker.bot.xml.in, conf/poker.client.xml.in,
	  conf/poker.server.xml.in, examples/poker.bot.xml,
	  examples/poker.server-monotone.xml, examples/poker.server.xml,
	  pokerclient2d/poker2d.xml.in, tests/conf/poker.client.xml.in:
	  bump configuration files to version to 1.3.1
	* pokernetwork/pokertable.py, tests/test-pokertable.py.in: protect
	  table against exceptions so that the history is never interpreted
	  twice
	* NEWS, debian/changelog, pokernetwork/__init__.py: bump to version
	  1.7.1

2008-11-27  Johan Euphrosine <proppy@aminche.com>

 	* Release 1.7.0

	* conf/poker.server.xml.in: remove non-translated locales from
	  poker.server.xml.in and add fr_FX

2008-11-27  Loic Dachary <loic@dachary.org>

	* conf/poker.server.xml.in: add support for en_US.UTF-8 fr_FR.UTF-8
	  de_BE.UTF-8 de_DE.UTF-8 en_GB.UTF-8 es_ES.UTF-8 nl_BE.UTF-8
	  nl_NL.UTF-8 fr_BE.UTF-8 de_AT.UTF-8 en_CA.UTF-8 es_US.UTF-8
	  fr_CA.UTF-8 it_IT.UTF-8 pt_PT.UTF-8 da_DK.UTF-8 fi_FI.UTF-8
	  it_CH.UTF-8 nb_NO.UTF-8 no_NO.UTF-8 pt_BR.UTF-8 sv_SE.UTF-8 in
	  the default poker.server.xml.in configuration file
	* ChangeLog: *** empty log message ***

2008-11-26  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: locale needs to carry the game_id
	  to be routed to the proper avatar

2008-11-26  Bradley M. Kuhn  <bkuhn@ebb.org>

	* examples/merged-translation-import.plx.in: Added jpoker
	support.  Fixed copyright replacement.

2008-11-25  Bradley M. Kuhn  <bkuhn@ebb.org>

	* configure.ac: Added merged-translation-import.plx.in.

	* examples/merged-translation-import.plx.in: Added script.

2008-11-25  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  delay tourneyDeleteRoute using reactor.callLater

2008-11-25  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in: the
	  ping delay is measured in seconds, not milliseconds
	* database/1.6.0-1.7.0.sql, database/schema.sql.in,
	  pokernetwork/pokerservice.py, tests/test-pokerservice.py.in,
	  tests/test-servercrash.py.in: add currency_serial column to the
	  user2tourney table ( https://gna.org/support/?2176 )
	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  create money without requiring a bailor if the bailor serial is
	  zero (useful for playmoney sites)
	* pokernetwork/pokerpackets.py: indent comments of Monitor packet
	* database/schema.sql.in: better comment for the
	  currency_serial_from_date_format field
	* pokernetwork/pokerservice.py: remove useless line from
	  tourneySelect

2008-11-25  Thomas Johnson <thomas.johnson@phpfreaks.com>

	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  Additional refactoring
	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  removed cleanUpOldCompleted and edited tourneySelect to not
	  return completed tournaments older than the specified hours

2008-11-24  Loic Dachary <loic@dachary.org>

	* tests/test-attrpack.py.in, tests/test-clientserver.py.in,
	  tests/test-pokercashier.py.in, tests/test-pokerlock.py.in,
	  tests/test-pokerservice.py.in, tests/test-protocol.py.in: replace
	  class foo(): with class foo: for python2.4 compatibility

2008-11-24  Thomas Johnson <thomas.johnson@phpfreaks.com>

	* conf/poker.server.xml.in, pokernetwork/pokerservice.py,
	  tests/test-pokerservice.py.in: fixed bug from #2173 and added
	  #2171

2008-11-24  Loic Dachary <loic@dachary.org>

	* database/1.6.0-1.7.0.sql, pokernetwork/pokerservice.py,
	  tests/test-pokersite.py.in: update the mockup for locale handling
	  and always set the locale in playerinfo packet

2008-11-23  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.test23_isShuttingDown): Renumbered test
	after merge from trunk.
	(PokerServiceTestCase.test23_isShuttingDown): Renumbered test
	after merge from trunk.
	(TourneyManagerTestCase.test04_coverOldMySQLByMockUp):
	spawnTourneyInCore() now tags another argument.
	(PokerServiceCoverageTests.test22_tourneyRegister_torneyAlreadyRegistering):
	Wrote test.
	(PokerServiceCoverageTests.test23_tourneyRegister_tourneyRefuseRegistration.MockPacket):
	Wrote test.
	(PokerServiceCoverageTests.test24_tourneyRegister_tourneyNotEnoughMoneyToRegister):
	Wrote test.
	(PokerServiceCoverageTests.test25_tourneyRegister_updateMoneyWeirdness):
	Wrote test.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.forceDbToLocaleValue): Wrote function.

2008-11-22  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py
	(PokerAvatarTestCase.test15a_handPlay_dbLocalesAndOverridesThereof):
	Wrote test.

	* tests/test-pokeravatar.py.in
	(PokerAvatarNoClientServerTestCase): Created test class.
	(PokerAvatarNoClientServerTestCase.setUp): Wrote method.
	(PokerAvatarNoClientServerTestCase.test01_reloginCoverage): Wrote
	test.
	(PokerAvatarNoClientServerTestCase.test02_relogin_localeAlreadySet):
	Wrote test.

	* pokernetwork/pokeravatar.py (PokerAvatar.setLocale): Make sure
	locale is not None before looking up translation function.
	(PokerAvatar._setDefaultLocale): Wrote method.
	(PokerAvatar.relogin): Added call to _setDefaultLocale().
	(PokerAvatar.login): Added call to _setDefaultLocale().

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test21_getPlayerInfo_validReturns):
	Wrote test.

	* database/schema.sql.in: Switched locale default from "en" to
	"en_US.UTF-8".

	* pokernetwork/pokerservice.py (PokerService.getPlayerInfo): Added
	locale to include the lookup.

2008-11-21  Thomas Johnson <thomas.johnson@phpfreaks.com>

	* pokernetwork/pokerbothandeval.py: added name and email to
	  copyright notice

2008-11-20  Loic Dachary <loic@dachary.org>

	* pokernetwork/countfilter.py: copyright update
	* pokernetwork/countfilter.py, tests/test-countfilter.py.in:
	  memcache stores strings and tests must be done using string
	  instead of int. The comparison of the counts was flawed because
	  comparing strings in lexical order.

2008-11-19  Loic Dachary <loic@dachary.org>

	* tests/test-svg2gtk.py.in: remove spurious x

2008-11-19  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/proxyfilter.py: better comment for poker-network
	  proxyfilter
	* pokernetwork/proxyfilter.py, tests/test-proxyfilter.py.in:
	  proxyfilter should ignore finished request

2008-11-16  Bradley M. Kuhn  <bkuhn@ebb.org>

	* LICENSE, COPYING: Relicensed many authors under AGPLv3 with
	their consent.  (Includes "bombing run" changes in nearly all
	file-by-file copyright/license notices in the code base).

2008-11-10  Loic Dachary <loic@dachary.org>

	* tests/test-proxyfilter.py.in: tests for pokerPoll and stack trace
	  server side
	* tests/test-pokersite.py.in: an error not longer disconnects with
	  a Failure() reason argument
	* pokernetwork/proxyfilter.py: improve log readability for tracking
	  errors
	* pokernetwork/pokersite.py: pipeFailed must print the body of the
	  error even when it comes from a proxyd request that has already
	  been filled. Otherwise proxyd errors are never logged proxy side
	  (only server side). Use finish() instead of connectionLost()
	  which was initialy used probably because the regular request
	  handler was not protected against requests for which an answer
	  was ready (either because a filter created an answer or because
	  pipeFailed reported an error). If the regular handler fails,
	  expire the session after creating the answer with the appropriate
	  error code and messages. There is no reason to expire the session
	  before and it's more error prone.

2008-11-09  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerServiceCoverageTests.test05_forceAvatarDestory_notInAnyList):
	Wrote test.
	(PokerServiceCoverageTests.test06_forceAvatarDestory_inAvatarsListOnly):
	Wrote test.
	(PokerServiceCoverageTests.test07_forceAvatarDestory_inMonitorsAndAvatars):
	Wrote test.
	(PokerServiceCoverageTests.test08_sessionStartSucceed): Wrote
	test.
	(PokerServiceCoverageTests.test09_sessionStartFail): Wrote test.
	(PokerServiceCoverageTests.test10_sessionEndSucceed): Wrote test.
	(PokerServiceCoverageTests.test11_sessionEndInsertFailsDeleteSucceeds):
	Wrote test.
	(PokerServiceCoverageTests.test12_sessionEndAllSqlFails): Wrote test.
	(TourneyManagerTestCase.test04_coverOldMySQLByMockUp): Wrote test.
	(PokerServiceCoverageTests.test13_tourneyNewState_DBFail_forceTourneyDeal):
	Wrote test.
	(PokerServiceCoverageTests.test14_tourneyFinished_prizeNegative):
	Wrote test.
	(PokerServiceCoverageTests.test15_tourneyGameFilled_updateTableFail):
	Wrote test.
	(PokerServiceCoverageTests.test16_tourneyPlayersList_nonExistent):
	Wrote test.
	(PokerServiceCoverageTests.test17_tourneyPlayersList_sucess):
	Wrote test.
	(PokerServiceCoverageTests.test18_tourneyStats_sqlFails): Wrote
	test.
	(PokerServiceCoverageTests.test19_tourneyStats_succeed): Wrote
	test.
	(PokerServiceCoverageTests.test20_tourneyRegister_tourneyMissing):
	Wrote test.

2008-11-08  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokeravatar.py: verbosity control (connection lost
	  shows only if verbose > 3)
	* pokernetwork/pokersite.py: verbosity control (ping shows only if
	  verbose > 3)

2008-11-07  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokeravatar.py, tests/test-pokeravatar.py.in: send
	  AUTO_FOLD after SIT when joining for all players in auto

2008-11-07  Loic Dachary <loic@dachary.org>

	* pokernetwork/proxyfilter.py, tests/test-proxyfilter.py.in:
	  meaningfull verbose logs for tracing proxy activity

2008-11-06  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokersite.py: seek to beginning of request before
	  printing message

2008-11-06  Johan Euphrosine <proppy@aminche.com>

	* pokerstats/statslogic.py, pokerstats/test-stats.py.in: add
	  rank_tmp for pokerstats not to lock rank while calculating

2008-11-05  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokersite.py, tests/test-pokersite.py.in: pokersite
	  raise Exception if memcache_key is not a string, printing key
	  value and type to get more information

2008-11-05  Loic Dachary <loic@dachary.org>

	* database/1.6.0-1.7.0.sql, database/schema.sql.in: The user name
	  is not a unique key.
	  Uniqueness is by default enforced by the code (pokerauth) but is
	  not mandatory.

2008-11-04  Loic Dachary <loic@dachary.org>

	* debian/poker-web.prerm: fix inverted db_input tag and priority
	* debian/control: python-pyopenssl replaced by python-openssl
	* debian/control.unstable: python-pyopenssl replaced by
	  python-openssl
	* debian/control.jaunty: preliminary jaunty support
	* database/1.0.11-1.0.12.sql, database/1.0.30-1.0.31.sql: replace
	  --- comment with -- because mysql-5.0 is picky and rejects it
	* tests/upgrade.in: add compile command to run tests from the file
	  being edited under emacs
	* ChangeLog: *** empty log message ***
	* pokernetwork/pokersite.py: pipesFailed must log the error in
	  addition to returning it to the user because the system
	  administrator needs it to analyze the problem.
	* debian/control.intrepid: intrepid support
	* debian/control.dapper: source:Version is Source-Version on dapper

2008-11-03  Loic Dachary <loic@dachary.org>

	* tests/test-clientserver.py.in: connectionLost does not return a
	  deferred

2008-11-03  Johan Euphrosine <proppy@aminche.com>

	* debian/python-poker-stats.cron.hourly: add
	  python-poker-stats.cron.hourly
	* pokerstats/test-stats.py.in: move test --one-time to
	  OptionsTestCase, add poker.stats.test.xml generation/deletion in
	  setUp/tearDown
	* pokernetwork/pokermemcache.py, pokernetwork/pokersite.py,
	  tests/test-pokersite.py.in: convert memcache key to regular
	  string if unicode in pokernetwork.pokersite

2008-11-03  Loic Dachary <loic@dachary.org>

	* tests/test-pokerlock.py.in: comment out test02 because it fails
	  under unknown conditions

2008-11-02  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in (PokerServiceCoverageTests):
	Created class.
	(PokerServiceCoverageTests.test01_statsWithHands): Wrote test.
	(PokerServiceCoverageTests.test02_statsWithoutHands): Wrote test.
	(PokerServiceCoverageTests.test03_createAvatar): Wrote test.

2008-10-31  Johan Euphrosine <proppy@aminche.com>

	* pokerstats/stats.py, pokerstats/test-stats.py.in: add --one-time
	  option to pokerstats
	* pokerstats/poker.stats.xml.in, pokerstats/statslogic.py,
	  pokerstats/test-stats.py.in: add /settings/@percentiles in
	  poker.stats.xml

2008-10-29  Johan Euphrosine <proppy@aminche.com>

	* Makefile.am, twisted, twisted/plugins,
	  twisted/plugins/pokernetwork_plugin.py: add poker-network twisted
	  plugin take 2
	* Makefile.am, debian/python-poker-network.init,
	  debian/python-poker-network.install, pokernetwork/pokerserver.py:
	  add poker-network twisted plugin
	* po/fr.po: update poker-network fr_FR translation

2008-10-29  Loic Dachary <loic@dachary.org>

	* tests/test-pokerlock.py.in: get rid of time sensitive test case
	  and remove pokerlock from the list of files with 100% coverage
	* pokernetwork/pokeravatar.py, pokernetwork/pokerexplain.py,
	  pokernetwork/pokerpackets.py, pokernetwork/tourneyattrs.py,
	  tests/test-pokerexplain.py.in: better control over explain
	  verbosity (patch from mornifle)
	* tests/run.in, tests/test-pokeravatar.py.in: get rid of time
	  sensitive test case and remove pokerlock from the list of files
	  with 100% coverage

2008-10-29  Johan Euphrosine <proppy@aminche.com>

	* debian/control.lenny: add python-xml to poker-network build
	  depends for lenny
	* po/fr.po: make update-po in poker-network
	* po/ChangeLog:
	* po/fr.po: poker-network french translation update

2008-10-26  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(PokerFactoryFromPokerServiceTestCase): Created test class.
	(PokerServiceTestCase.test20_isShuttingDown): Wrote test.
	(PokerServiceTestCase.test21_stopFactory): Wrote test.

2008-10-25  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerlock.py.in
	(PokerLockTestCase.test12_mainTests_makeSureDBCloses): Wrote test.

	* tests/run.in (DEFAULT_COVERAGE_FILES): Added pokerlock.

	* tests/test-pokerlock.py.in
	(PokerLockTestCase.test10_mainTests_notRunningForCallback):
	Wrote test.
	(PokerLockTestCase.test11_mainTests_raiseForceRelease): Wrote
	test.

2008-10-23  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokertable.py, tests/test-pokertable.py.in: call
	  update when the player moves or the hand may not be dealt in a
	  heads up tournament table.
	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  Remove bots from tournaments where they are registered when
	  discarding them at shutdown.
	* pokernetwork/attrpack.py: fix comment

2008-10-22  Johan Euphrosine <proppy@aminche.com>

	* conf/poker.server.xml.in: add counfilter sample in
	  poker.server.xml.in

2008-10-21  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  getPlayerPlaces list registering running break and break wait
	  tourneys

2008-10-20  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerlock.py.in (PokerLockTestCase.test07_mainTests_stopped):
	Wrote test.
	(PokerLockTestCase.test08_mainTests_emptyQueue): Wrote test.
	(PokerLockTestCase.test09_mainTests_wrongRaise): Wrote test.
	(PokerLockTestCase.test06_aquireTimeout.lockTimeoutExpected_failed):
	Fixed overzealous search_output.

2008-10-19  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerlock.py.in (PokerLockTestCase.test01_simple):
	Added message asserts.
	(PokerLockTestCase.test02_wait): Added message asserts.
	(PokerLockTestCase.test03_acquire_dead): Added message asserts.
	(PokerLockTestCase.test04_release_twice.validate): Added message
	asserts.
	(PokerLockTestCase.test06_aquireTimeout): Wrote test.

	* tests/run.in (DEFAULT_COVERAGE_FILES): Added
	../pokernetwork/pokercashier.py

	* tests/test-pokercashier.py.in (PokerCashierLockUnlockTestCase):
	Created class.
	(PokerCashierLockUnlockTestCase.test01_unlockNonExistent): Wrote
	test.
	(PokerCashierLockUnlockTestCase.test02_lockCreateTwice): Wrote
	test.
	(PokerCashierLockUnlockTestCase.test04_unlockTwice): Wrote test.

	* pokernetwork/pokercashier.py (PokerCashier.cashOutBreakNote):
	'message' variable was not set in error condition.

	* tests/test-pokercashier.py.in
	(PokerCashierFakeDBTestCase.test09_cashOutUpdateCounter_forceRaiseOnNotesOrder):
	Wrot test.
	(PokerCashierFakeDBTestCase.test10_cashOutBreakNote_DeferredFromCommit):
	Wrote test.
	(PokerCashierFakeDBTestCase.test11_cashOutBreakNote_multirowForSerial):
	Wrote test.

2008-10-18  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokercashier.py.in
	(PokerCashierFakeDBTestCase.test08_cashOutUpdateCounter_various):
	Wrote test.

	* pokernetwork/pokercashier.py
	(PokerCashier.cashOutUpdateCounter): Fixed typo in message.

	* tests/test-pokercashier.py.in
	(PokerCashierFakeDBTestCase.test06_cashOutUpdateSafe_forceFakeFalsePacket):
	Wrote test.
	(PokerCashierFakeDBTestCase.cashOutUpdateCounter_weirdLen): Wrote
	method.
	(PokerCashierFakeDBTestCase.test07_cashOutUpdateCounter_weirdLen_1):
	Wrote test.
	(PokerCashierFakeDBTestCase.test07_cashOutUpdateCounter_weirdLen_3):
	Wrote test.

	* pokernetwork/pokercashier.py (PokerCashier.unlock): Fixed
	misspelling in verbose output.

	* tests/test-pokercashier.py.in
	(PokerCashierFakeDBTestCase.test04_cashOutUpdateSafe_twoNullPackets):
	Wrote test.

2008-10-16  Loic Dachary <loic@dachary.org>

	* tests/test-clientserver.py.in: clear messages in test10
	  remove test09

2008-10-16  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokercashier.py.in (PokerCashierFakeDBTestCase):
	Created class.
	(PokerCashierFakeDBTestCase.test01_ForceExceptionOnExecute): Wrote
	test.
	(PokerCashierFakeDBTestCase.test01_ForceExceptionOnRowCount):
	Renamed test.
	(PokerCashierFakeDBTestCase.test02_forceExceptionOnExecute): Wrote
	test.
	(PokerCashierTestCase.test07_getCurrencySerial): Improved checking
	for getCurrencySerial()

2008-10-13  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-clientserver.py.in (MockPingTimer): Moved class from
	out of DummyServerTests into main body of file.
	(DummyClientTests): Wrote class and ping tests.
	(DummyClientTests.test05_getSerial): Wrote test.
	(DummyClientTests.test06_getName): Wrote test.
	(DummyClientTests.test07_getURL): Wrote test.
	(DummyClientTests.test08_getOutfit): Wrote test.
	(DummyClientTests.test09_isLogged): Wrote test.
	(DummyClientTests.test10_error): Wrote test.
	(ClientServer.test09_badClientProtocol): Moved test to new class,
	ClientServerBadClientProtocol.
	(ClientServerBadClientProtocol): Created class for single test.

	* pokernetwork/client.py (UGAMEClientProtocol): Added comment
	about strange behavior of this method.

	* tests/test-clientserver.py.in
	(ClientServer.test07_bufferizedClientPackets.bufferPackets): Wrote test.
	(ClientServer.test08_bufferizedClientPacketsTwo): Wrote test.
	(ClientServer.test09_badClientProtocol): Wrote test.

	* tests/run.in (DEFAULT_COVERAGE_FILES): Added
	../pokernetwork/server, fixed ../pokernetwork/protocol

	* tests/test-clientserver.py.in
	(DummyServerTests.test12_handleConnectionNoException): Wrote test.
	(DummyServerTests.test13_handleConnectionWithExceptionRaised):
	Wrote test.
	(DummyServerTests.test14_handleConnectionWithExceptionRaisedNotSet):
	Wrote test.

2008-10-12  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-clientserver.py.in (ClientServerQueuedServerPackets):
	Created class.
	(ClientServerTestBase): Created base class.
	(ClientServerDeferredServerPackets): Created class.
	(ClientServerDeferredServerPackets.test01_deferredPacket): Wrote test.
	(ClientServerDeferredServerPackets.deferErrorPacket): Wrote helper.
	(ClientServerDeferredServerPackets.test02_deferredErrBackPacket):
	Wrote test.

2008-10-11  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-clientserver.py.in
	(FakeFactory.buildProtocol.Transport.__init__): Wrote method.
	(FakeFactory.buildProtocol.Transport.loseConnection): Added
	counter.
	(DummyServerTests.test02_pingRenew): Replaced with new tests.
	(DummyServerTests.MockPingTimer): Wrote mock class.
	(DummyServerTests.test02_pingWithoutTimer): Wrote test.
	(DummyServerTests.test03_pingWithNoneTimer): Wrote test.
	(DummyServerTests.test04_pingWithActiveTimerNoUser): Wrote test.
	(DummyServerTests.test05_pingWithActiveTimerWithUser): Wrote test.
	(DummyServerTests.test06_pingWithInactiveTimerNoUser): Wrote test.
	(DummyServerTests.test07_pingWithInactiveTimerWithUser): Wrote test.
	(FakeFactory.__init__): Added self.destroyedAvatars
	(FakeFactory.destroyAvatar): Append to self.destroyedAvatars
	(DummyServerTests.MockPingTimer.cancel): Added method.
	(DummyServerTests.test08_connectionLostNonePingTimerNoAvatar):
	Wrote test.
	(DummyServerTests.test09_connectionLostNoPingTimerWithAvatarButNoQueues):
	Wrote test.
	(DummyServerTests.test10_connectionLostWithInactivePingTimerWithAvatarAndQueues):
	Wrote test.

2008-10-06  Loic Dachary <loic@dachary.org>

	* pokernetwork/packets.py, pokernetwork/pokerexplain.py,
	  pokernetwork/pokerpackets.py, tests/test-pokerexplain.py.in,
	  tests/test-pokerservice.py.in, tests/test-protocol.py.in: .
	  TOURNEY_FINISH is sent at the end of a tournament
	  . explain mode keeps the MOVE packet instead of turning it into a
	  LEAVE packet
	  . a LEAVE packet is added when a MOVE packet is sent
	* pokernetwork/pokerservice.py: do not delete resthost entries when
	  shutingdown the server (or else it invalidates all the matching
	  tourneys_schedule entries)

2008-10-05  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/run.in (DEFAULT_COVERAGE_FILES): Added
	../pokernetwork/protocol.py

	* tests/test-protocol.py.in
	(UGAMEProtocolTestCase.testDataReceived): Added asserts and
	testing.
	(UGAMEProtocolTestCase.testCoverDataWrite): Wrote test.
	(UGAMEProtocolTestCase.testConnectionMade): Added asserts and
	testing.
	(UGAMEProtocolTestCase.testSendVersion): testConnectionMade() now
	covers _sendVersion.
	(UGAMEProtocolTestCase.testHandleConnection): Attempted to improve
	test.
	(UGAMEProtocolTestCase.testProcessQueues): Improved asserts.
	(UGAMEProtocolTestCase.triggerTimer_expectNoCallLater): Wrote
	helper method.
	(UGAMEProtocolTestCase.testTriggerTimer_alreadyHaveActiveTimer):
	Wrote test.
	(UGAMEProtocolTestCase.testTriggerTimer_noTimerPollingEmptyQueues):
	Wrote test.
	(UGAMEProtocolTestCase.testTriggerTimer_inactiveTimerNoPoll):
	Wrote test.
	(UGAMEProtocolTestCase.testTriggerTimer_noTimerPollingEmptyQueues):
	Wrote test.
	(UGAMEProtocolTestCase.testTriggerTimer_reactorIsCalled): Wrote
	test.
	(Run): Rewrote to use twisted unittest/runner.
	(UGAMEProtocolTestCase.testPushPacket): Rewrote to mock up
	triggerTimer.
	(UGAMEProtocolTestCase.fakeProcessQueuesDeferred): Wrote helper
	method.
	(UGAMEProtocolTestCase.testProcessQueues): Rewrote to mock up
	triggerTimer.

	* pokernetwork/protocol.py (UGAMEProtocol._processQueues): Added
	no cover pragma.

2008-10-01  Loic Dachary <loic@dachary.org>

	* Makefile.am: Add missing pokernetwork/attrpack.py
	  pokernetwork/tourneyattrs.py to Makefile.am

2008-09-30  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-user.py.in: Created file.
	(PokerUserTestCase.test01_init): Wrote test.
	(PokerUserTestCase.test02_logout): Wrote test.
	(PokerUserTestCase.test03_hasPrivilege): Wrote test.
	(PokerUserTestCase.test04_checkName): Wrote test.
	(PokerUserTestCase.test05_checkPassword): Wrote test.
	(PokerUserTestCase.test06_checkNameAndPassword): Wrote test.

	* tests/Makefile.am (TESTS): Added tests/test-user.py.

	* configure.ac (AC_CONFIG_FILES): Added tests/test-user.py.

	* tests/test-pokerauth.py.in: Added pokerauthmysql.py to
	LocalVariables coverage list.  Rewrote fallback pokerauth test to
	a better common denominator for deriving.
	(PokerAuthMysqlTestCase.checkIfUserExistsInDB): Derived method.
	(PokerAuthMysqlTestCase.test04_authWithoutAutoCreate): Derived
	method.
	(PokerAuthMysqlTestCase.test07_mysql11userCreate): Overrode method
	for pass.
	(PokerAuthMysqlTestCase.test08_mysqlbeyond11userCreate): Overrode
	method for pass.
	(PokerAuthMysqlTestCase.test05_authWhenDoubleEntry): Overrode
	method.
	(PokerAuthMysqlTestCase.test06_validAuthWhenEntryExists): Overrode
	method.

	* tests/run.in (DEFAULT_COVERAGE_FILES): Added
	pokernetwork/pokerauth to list.

	* tests/test-pokerauth.py.in
	(PokerAuthTestCase.test03_authWithAutoCreate): Added db check.
	(PokerAuthTestCase.test04_authWithoutAutoCreate): Added db check.
	(PokerAuthTestCase.checkIfUserExistsInDB): Wrote method.
	(PokerAuthTestCase.test05_authWhenDoubleEntry): Wrote test.
	(PokerAuthTestCase.test06_validAuthWhenEntryExists): Wrote test.
	(PokerAuthTestCase.test07_mysql11userCreate): Wrote test.
	(PokerAuthTestCase.test08_mysqlbeyond11userCreate.MockCursor):
	Wrote test.
	(PokerAuthTestCase.test09_setAndGetLevel): Wrote test.

2008-09-28  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/tourneyattrs.py
	(TourneyAttrsEmptyLookup.getAttrsAsPacket): Moved method here from
	TourneyAttrsSponsoredPrizesLookup.

	* tests/test-tourneyattrs.py.in
	(PokerTourneyAttrsTestCase.test04_tourneyAttrsEmptyClass): Wrote test.

	* tests/test-userstats.py.in
	(PokerUserStatsTestCase.test04_userStatsEmptyLookupClass): Wrote test.

	* pokernetwork/tourneyattrs.py (TourneyAttrsEmptyLookup): Create
	default class.

	* pokernetwork/userstats.py (UserStatsEmptyLookup): Created
	default class.

	* tests/test-tourneyattrs.py.in
	(PokerTourneyAttrsTestCase.test02_tourneyAttrsSponsoredPrizesAccessor):
	No longer use schedule_serial.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.tourneySelect): Added test for ATTRS packets.

	* pokernetwork/pokeravatar.py (PokerAvatar.handlePacketLogic):
	Added send of TourneyAttrsList packet as well.

	* tests/test-tourneyattrs.py.in
	(PokerTourneyAttrsTestCase.test03_tourneyAttrsSponsoredPrizesLookupClass):
	Fixed test.

	* pokernetwork/tourneyattrs.py
	(TourneyAttrsSponsoredPrizesLookup.getAttrsAsPacket): tourney is
	not supposed to be an object.

	* pokernetwork/pokerpackets.py (PacketPokerTourneyAttrsList):
	Created new packet.

	* tests/test-pokerservice.py.in (PokerServiceTestCase.configValues):
	Added <tourney_attrs> tests.
	(PokerServiceTestCase.test00_09_configValues): Wrote test.
	(PokerServiceTestCase.test00_10_configValues): Wrote test.
	(PokerServiceTestCase.test00_11_configValues): Wrote test.
	(PokerServiceTestCase.test00_01_configValues): Renamed test.
	(PokerServiceTestCase.test00_02_configValues): Renamed test.
	(PokerServiceTestCase.test00_03_configValues): Renamed test.
	(PokerServiceTestCase.test00_4_badLocaleObject): Renamed test.
	(PokerServiceTestCase.test00_05_configValues): Renamed test.
	(PokerServiceTestCase.test00_06_configValues): Renamed test.
	(PokerServiceTestCase.test00_07_configValues): Renamed test.
	(PokerServiceTestCase.test00_08_configValues): Renamed test.

	* pokernetwork/pokerservice.py
	(PokerService.getTourneyAttrsLookup): Wrote method.
	(PokerService.getUserStatsLookup): Changed to use dict.
	(PokerService.__init__): Added TourneyAttrsFactory and
	<tourney_attrs> field support.

	* tests/test-pokertable.py.in
	(MockServiceWithUserStats.getUserStatsLookup.UserStatsMockup.getAttrsAsPacket):
	Changed to use new derived interface for UserStats now that
	AttrsLookup exists.

	* tests/test-protocol.py.in
	(UGAMEProtocolTestCase.testHandleData): Added test for packets
	just created.

	* pokernetwork/pokerpackets.py (PacketPokerGetTourneyAttrs): Added
	packet.
	(PacketPokerTourneyAttrs): Added packet.
	(PacketPokerGetSupportedTourneyAttrs): Added packet.
	(PacketPokerSupportedTourneyAttrs): Added packet.

	* tests/test-tourneyattrs.py.in (PokerTourneyAttrsTestCase): Wrote
	tests.

	* pokernetwork/tourneyattrs.py
	(TourneyAttrsSponsoredPrizesAccessor._lookupValidAttr):
	Implemented with dummy data.

	* pokernetwork/pokertable.py (PokerTable.newPlayerInformation): Fixed
	to use new kwargs call style for getAttrsAsPacket()

	* pokernetwork/pokeravatar.py (PokerAvatar.getPlayerStats): Fixed
	to use new kwargs call style for getAttrsAsPacket()
	(PokerAvatar.join): Fixed to use new kwargs call style for
	getAttrsAsPacket()

	* pokernetwork/tourneyattrs.py (TourneySponsoredPrizesAccessor):
	Created class.
	(TourneySponsoredPrizesLookup): Created class.
	(TourneyAttrsFactory): Created class.

	* pokernetwork/pokerpackets.py (PacketPokerPlayerStats.__init__):
	Renamed statsDict to attrsDict.
	(PacketPokerSupportedPlayerStats): s/stats/attrs/, changed to Sl

	* pokernetwork/userstats.py
	(UserStatsRankPercentileLookup.getAttrsAsPacket): Wrote method.

2008-09-27  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-userstats.py.in
	(PokerUserStatsTestCase.test01_userStatsAccessorBaseClass):
	Removed test.
	(PokerUserStatsTestCase.test02_factory): Renamed test to
	test01_factory, and adapted to new code.
	(PokerUserStatsTestCase.test03_rankPercentileAccessor): Renamed to
	test02, adapated to new code.
	(PokerUserStatsTestCase.test04_userStatsLookupBaseClass): Removed
	test.
	(PokerUserStatsTestCase.test05_userStatsRankPercentileLookupBaseClass):
	Renamed to test03; Adapted to new code.

	* pokernetwork/userstats.py (UserStatsFactory): Reworked to derive
	from AttrsFactory.
	(UserStatsRankPercentileLookup): Reworked to derive from
	AttrsLookup.
	(UserStatsRankPercentileAccessor): Reworked to derive from
	AttrsAccessor.
	(UserStatsAccessor): Removed old base class.
	(UserStatsLookup): Removed old base class.

	* tests/test-attrpack.py.in
	(PokerAttrsTestCase.test02_factory): Adapted test from UserStats version.
	(PokerAttrsTestCase.test03_attrsLookup): Wrote test.

2008-09-24  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-attrpack.py.in: Created file, copying from
	tests/test-userstats.py.in
	(PokerAttrsTestCase.test01_attrsAccessorBaseClass): Wrote full
	coverage for AttrsAccessor.

	* pokernetwork/attrpack.py (AttrsLookup): Created class by
	modifying UserStatsLookup.

2008-09-23  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/attrpack.py (AttrsFactory): Created class by
	modifying UserStatsFactory.
	(AttrsFactory.__init__): Wrote method.
	(AttrsFactory.getClass): Changed to use new instance variables.
	(AttrsAccessor): Created class by modifying UserStatsAccessor.

2008-09-19  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokersite.py: convert the JSON structures to UTF-8
	  before sending them back

2008-09-18  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py: all delays must be converted to int
	  (when read from the XML file they are strings)
	* Makefile.am: Add AGPLv3 LICENSE GPLv3 to EXTRA_DIST

2008-09-18  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(BreakTestCase.test07_tourneyFinish_withWait): Values in delays
	dict should be strings.
	(BreakTestCase.test05_tourneyNewState_tourneyStart_withWait):
	Values in delays dict should be strings.
	(BreakTestCase.test03_tourneyNewState_tourneyResumeAndDeal_withWait):
	Values in delays dict should be strings.

	* tests/test-pokeravatar.py.in (PokerAvatarTestCase.doGetStats):
	Wrote method.
	(PokerAvatarTestCase.test77_getStatsWhenLoggedIn): Wrote test.
	(PokerAvatarTestCase.getStatsError): Wrote method.
	(PokerAvatarTestCase.test78_getStatsError): Wrote test.
	(PokerAvatarTestCase.getStatsIgnored): Wrote method.
	(PokerAvatarTestCase.test79_getStatsIgnoredWhenNotAtTable): Wrote
	test.

	* pokernetwork/pokeravatar.py (PokerAvatar.getPlayerStats): Wrote
	method.

	* pokernetwork/pokerpackets.py (PacketPokerGetPlayerStats):
	changed to derive from PacketId

	* pokernetwork/pokeravatar.py (PokerAvatar.handlePacketLogic):
	Added handler for PACKET_POKER_GET_PLAYER_STATS.

	* tests/test-protocol.py.in
	(UGAMEProtocolTestCase.testHandleData): Added new packet.

	* pokernetwork/pokerpackets.py (PacketPokerGetPlayerStats):
	Created packet.

2008-09-18  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokerpackets.py, pokernetwork/pokertable.py,
	  tests/test-pokerpackets.py.in, tests/test-pokertable.py.in: add
	  tourney_serial ('no net') member to PacketPokerTable

2008-09-18  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py: all delays must be converted to int
	  (when read from the XML file they are strings)
	* Makefile.am: Add AGPLv3 LICENSE GPLv3 to EXTRA_DIST

2008-09-18  Johan Euphrosine <proppy@aminche.com>

	* pokernetwork/pokertable.py, tests/test-pokertable.py.in: call
	  service.updateTableStats in pokertable.seatPlayer and
	  pokertable.leavePlayer

2008-09-17  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: add missing
	  PacketFactory[PACKET_POKER_PLAYER_STATS] = PacketPokerPlayerStats

2008-09-17  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerpackets.py.in
	(PokerPacketsTestCase.test_verifyfactory): Added test to verify
	the PokerFactory and PacketNames variables have proper contents.

2008-09-16  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test15_handPlay): Added test for
	UserStatsLookup packet sent on join.
	(PokerAvatarTestCase.joinTable): Added test for UserStatsLookup.

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.configValues): Added check that service is
	properly set.

	* pokernetwork/pokerservice.py (PokerService.__init__):
	UserStatsFactory() output must be initalized in with the service.

	* tests/test-userstats.py.in
	(PokerUserStatsTestCase.test03_rankPercentileAccessor): updated
	test to check for currency_serial being 0.

	* pokernetwork/userstats.py
	(UserStatsRankPercentileAccessor._lookupValidStat): currency can
	be zero.

	* tests/test-pokeravatar.py.in (PokerAvatarTestCase.seatTable):
	Added test for stat packet.
	(PokerAvatarTestCase.createRankDBTable): Wrote method.
	(PokerAvatarTestCase.test09_01_seatTableWithRankTable): Wrote
	test.
	(PokerAvatarTestCase.test09_00_seatTable): Renamed test.

	* pokernetwork/pokeravatar.py (PokerAvatar.join): Added send of
	PokerPlayerStats packet.

	* tests/test-pokertable.py.in (PokerTableTestCase.test15_moveTo):
	Adjusted test case to include check for stats packet send.
	(PokerTableTestCase.setUp): Added ServiceClass arg.
	(PokerTableTestCaseWithPredefinedDecksAndNoAutoDeal.setUp): Added
	ServiceClass arg.
	(PokerTableTestCaseTransient.setUp): Added ServiceClass arg.
	(PokerTableMoveTestCase.test15_moveTo): Moved test here.

	* pokernetwork/pokertable.py (PokerTable.newPlayerInformation):
	Added stats packet.

	* tests/test-userstats.py.in: Switched avatar to userSerial

	* pokernetwork/userstats.py: Switch from avatar as the operative
	object to sending merely along a userSerial.

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.configValues): Improved test to cover
	getUserStatsLookup()

	* pokernetwork/pokerservice.py (PokerService.getUserStatsLookup):
	Wrote method.

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.test00_6_configValues): Wrote test.
	(PokerServiceTestCase.test00_7_configValues): Wrote test.
	(PokerServiceTestCase.test00_8_configValues): Wrote test.
	(PokerServiceTestCase.configValues): Added stats support.

	* pokernetwork/userstats.py (UserStatsFactory.getStatsClass):
	Switched to return the default lookup object when nothing found.

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.test13_checkTourneysSchedule_spawn_regular):
	Added update to set respawn to 'y' for 'regular1' tourney.

2008-09-15  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/pokerservice.py (PokerService.tourneyDestroyGame):
	Adjusted so reactor.callLater() is not used for waits <= 0.
	(PokerService.tourneyNewState): Adjusted so reactor.callLater() is
	not used for waits <= 0.


	* pokernetwork/userstats.py (UserStatsLookup.allStatsAsPacket):
	Wrote method.
	(UserStatsLookup.getSupportedListAsPacket): Wrote method.

	* tests/test-protocol.py.in
	(UGAMEProtocolTestCase.testHandleData): Added three new packets
	per below.

	* pokernetwork/pokerpackets.py (PacketPokerPlayerStats): Created packet.
	(PacketPokerGetStatsSupported): Created packet.
	(PacketPokerStatsSupported): Created packet.

	* tests/test-userstats.py.in
	(PokerUserStatsTestCase.test04_userStatsLookupBaseClass): Wrote test.
	(PokerUserStatsTestCase.test05_userStatsRankPercentileLookupBaseClass):
	Wrote test.
	(PokerUserStatsTestCase.test03_rankPercentileAccessor): Fixed bug
	with assertions related to sort.

	* pokernetwork/userstats.py (UserStatsAccessor.error): Added method.
	(UserStatsAccessor.getStatsValue): Restored strangely deleted method.
	(UserStatsAccessor._lookupValidStat): Restored strangely deleted method.
	(UserStatsLookup.getStatValue): Wrote method.
	(UserStatsLookup.__init__): Wrote method.
	(UserStatsRankPercentileLookup.__init__): Wrote method.
	(UserStatsLookup.allStatsAsPacket): Created stub for method.
	(UserStatsLookup.error): Wrote method.
	(UserStatsLookup.message): Wrote method.

2008-09-15  Loic Dachary <loic@dachary.org>

	* Makefile.am: add userstats.py to the distribution

	* tests/test-pokerservice.py.in: test18_cleanupTourneys_registering
	  must use regular tourneys for testing because sng are always
	  discarded

	* pokernetwork/pokerservice.py, tests/test-servercrash.py.in: fix
	  tournament cleanup (trash running tournaments or sng in
	  registering state)
	* pokernetwork/userstats.py: add message method class
	  UserStatsAccessor: for test purposes

2008-09-14  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-userstats.py.in (PokerUserStatsTestCase.MockTable):
	Created mock up.
	(PokerUserStatsTestCase.MockService): created mock up.
	(PokerUserStatsTestCase.MockAvatar): created mock up.

	* pokernetwork/userstats.py
	(UserStatsRankPercentileAccessor._lookupValidStat): Wrote method.

	* tests/test-userstats.py.in
	(PokerUserStatsTestCase.test02_factory): Fixed test to use
	Lookup class.

	* pokernetwork/userstats.py (UserStatsLookup): Created class.
	(UserStatsRankPercentileLookup): Created class.
	(UserStatsFactory.error): Added "Lookup" to end of required class
	string.

	* tests/test-userstats.py.in
	(PokerUserStatsTestCase.test01_baseClass): Renamed to
	test01_userStatsAccessorBaseClass and rewrote.
	(PokerUserStatsTestCase.test02_rankLevel): Renamed to
	test03_rankPercentileAccessor and rewrote.

	* pokernetwork/userstats.py (UserStatsAccessor): reworked
	UserStats class into UserStatsAccessor.

2008-09-13  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-userstats.py.in: Created file.
	(PokerUserStatsTestCase.test01_baseClass): Wrote test.
	(PokerUserStatsTestCase.test02_factory): Wrote test.

	* pokernetwork/userstats.py (UserStats): Created class and file.

2008-09-12  Loic Dachary <loic@dachary.org>

	* database/schema.sql.in: Do not respawn the default tourney to
	  prevent polution of the database.
	* pokernetwork/pokerservice.py, tests/test-servercrash.py.in:
	  Cleanup the tables that have a matching resthost_serial even when
	  they are not listed in the configuration file. This takes care of
	  the tournament tables and tables that were removed from the
	  configuration file.
	* conf/poker.bot.xml.in: cash_in default example

2008-09-11  Loic Dachary <loic@dachary.org>

	* tests/test-protocol.py.in: Add 154:
	  'POKER_TABLE_TOURNEY_BREAK_BEGIN', 155:
	  'POKER_TABLE_TOURNEY_BREAK_DONE', new packets

2008-09-10  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/pokerpackets.py: Added info about tourney break
	packets to Q&A comments at top of file.

	* tests/test-pokerservice.py.in
	(BreakTestCase.test_tourneyBreakResume): Renamed test to
	test11_tourneyBreakResume.
	(BreakTestCase.test11_tourneyBreakResume): Changed test to handle
	additional table.broadcast()'d packets.
	(BreakTestCase.Table.broadcastMessage): Added self.type assignment.
	(BreakTestCase.Table.__init__): Added self.type assignment.

	* pokernetwork/pokerservice.py (PokerService.tourneyBreakResume):
	Added table.broadcast of PacketPokerTableTourneyBreakDone.

2008-09-09  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in (BreakTestCase.test08_tourneyNewState_tourneyBreak):
	Wrote test, coverage for changes below in pokerservice.py

2008-09-08  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(BreakTestCase.test01_tourneyNewState_noCallbacksNeeded): Renamed
	test to test01_tourneyNewState_simpleTransitions.

	* pokernetwork/pokerservice.py (PokerService.tourneyNewState):
	send PacketPokerTableTourneyBreakBegin() to all games when
	new_state is TOURNAMENT_STATE_BREAK.

	* pokernetwork/pokerpackets.py
	(PacketPokerTableTourneyBreakStart): Create packet type.
	(PacketPokerTableTourneyBreakDone): Created packet type.

2008-09-08  Loic Dachary <loic@dachary.org>

	* database/1.6.0-1.7.0.sql, database/schema.sql.in,
	  pokernetwork/pokerpackets.py, pokernetwork/pokerservice.py: .
	  Documentation for monitor table and fields.
	  . Fill the third field of the monitor table.
	* tests/test-pokersite.py.in: PokerServiceMockup must provide
	  getClientQueuedPacketMax
	* tests/test-pokermemcache.py.in: include from @srcdir@
	* pokernetwork/pokermemcache.py: extract memcache wrapper from
	  pokersite.py
	* tests/test-proxyfilter.py.in: use pokermemcache instead of
	  pokersite
	* tests/test-pokersite.py.in: move memcache tests to
	  test-pokermemcache.py.in
	* tests/test-pokerservice.py.in: . Implement MonitorTestCase
	  . The tables service member is now a map
	* tests/test-pokerclient.py.in: service tables are now a map
	  instead of a table
	* tests/Makefile.am, tests/monitorplugin.py: add monitorplugin
	  support file for tests
	* pokerstats/test-stats.py.in: test the player level calculations
	* pokerstats/statslogic.py: Add level, calculated as the percentile
	  in which the player rank is.
	* pokernetwork/pokersite.py: move memcache wrapper and mockup to
	  pokermemcache.py
	* pokernetwork/pokerservice.py: . implement monitor plugins
	  . tables is a map instead of an array for quicker lookup
	  . monitor events involving money are differentiated
	* pokernetwork/pokerpackets.py: differentiate monitor events when
	  money is involved
	* database/schema.sql.in: . skin_url size is 255
	  . tourney name is 200
	  . monitor serial is a bigint
	* database/1.6.0-1.7.0.sql: . skin_url size is 255
	  . tourney name is 200
	  . monitor serial is a bigint
	* Makefile.am, configure.ac, tests/test-pokermemcache.py.in:
	  isolate memcache interface in a separate file

2008-09-07  Bradley M. Kuhn  <bkuhn@ebb.org>

	* COPYING: moved to file named 'GPLv3'.

	* AGPLv3: Added GNU Affero General Public License, version 3.

	* LICENSE: Created file with license information.

	* README (License): Moved license information to LICENSE file.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.forceObserverDisconnectPacketQueue): Wrote method.
	(PokerAvatarTestCase.test76_forceObserverDisconnectPacketQueue):
	Wrote test.
	Changed license of my copyrights to AGPLv3-or-later.

	* pokernetwork/pokerservice.py (PokerService.forceAvatarDestroy):
	Wrote method.
	Changed license of my copyrights to AGPLv3-or-later.

2008-09-02  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/pokeravatar.py (PokerAvatar.__init__): Added
	warnedPacketExcess variable.
	(PokerAvatar.extendPacketsQueue): Wrote method.
	(PokerAvatar.sendPacket): Changed direct access to
	self._packets_queue to method call.

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.test00_3_configValues): Added
	queuedPacketMax test.
	(PokerServiceTestCase.configValues): Added queuedPacketMax test.

	* pokernetwork/pokerservice.py
	(PokerService.getClientQueuedPacketMax): Added method.
	(PokerService.__init__): added initialization of
	self.client_queued_packet_max from settings.

	* conf/poker.server.xml.in: Added max_queued_client_packets
	setting in <server>.

2008-09-01  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.playWhileObserverGrows): Wrote method.
	(PokerAvatarTestCase.test74_tooManyPacketsGrowOnObserver): Created
	test.
	(PokerAvatarTestCase.playerSitsBrieflyThenSitsOut): Wrote method.
	(PokerAvatarTestCase.test75_playerSitsBrieflyThenOut): Created test.
	(PokerAvatarTestCase.playerTimesoutAndThenLooksAtQueuedPackets):
	Fixed bug in test.

2008-08-31  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.playWhilePlayerDisconnectsAndRejoin): Wrote
	helper function.
	(PokerAvatarTestCase.test73_packetReplayFromRelogin): Wrote test.

2008-08-30  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(BreakTestCase.tourneyNewState_tourneyResumeAndDeal): split
	from test_tourneyNewState() and reworked to handle reactor call.
	(BreakTestCase.test02_tourneyNewState_tourneyResumeAndDeal_nowait):
	Wrote test.
	(BreakTestCase.test03_tourneyNewState_tourneyResumeAndDeal_withWait):
	Wrote test.
	(BreakTestCase.tourneyNewState_tourneyStart): Wrote method, based
	on tourneyNewState_tourneyResumeAndDeal.
	(BreakTestCase.test04_tourneyNewState_tourneyStart_nowait): Wrote test.
	(BreakTestCase.test05_tourneyNewState_tourneyStart_withWait):
	Wrote test.
	(BreakTestCase.tourneyFinish): Wrote method.
	(BreakTestCase.test06_tourneyFinish_nowait): Wrote test.
	(BreakTestCase.test07_tourneyFinish_withWait): Wrote test.
	(PokerServiceTestCase.test00_5_configValues): Wrote test.
	(PokerServiceTestCase.configValues): Added checks on self.service.delays
	(BreakTestCase.tourneyFinish): Moved db restore to before deferred return.
	(BreakTestCase.tourneyNewState_tourneyStart): Moved db restore to
	before deferred return.
	(BreakTestCase.tourneyNewState_tourneyResumeAndDeal): Moved db
	restore to before deferred return.

2008-08-28  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(BreakTestCase.test01_tourneyNewState_noCallbacksNeeded): split
	test_tourneyNewState().

2008-08-28  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokersite.py: There is no direct relation between an
	  expired session and the expiration of a cookie.
	* tests/test-pokersite.py.in: when memcache expires, the session
	  cookie changes
	* tests/test-proxyfilter.py.in: test the sequence : join table +
	  login + get a seat, because it's a case where session handling
	  has to be exactly right
	* pokernetwork/pokerservice.py, tests/test-proxyfilter.py.in: when
	  a tournament is created, a route is added for load balancing

2008-08-27  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/pokerservice.py (PokerService.tourneyNewState):
	Added check and delay for extra_wait_tourney_break
	(PokerService.tourneyResumeAndDeal): Wrote method.
	(PokerService.tourneyDestroyGame): delay actual table destruction
	based on extra_wait_tourney_finish
	(PokerService.tourneyDestroyGameActual): Created method.

2008-08-26  Loic Dachary <loic@dachary.org>

	* tests/test-proxyfilter.py.in: test06_tableSeat_auth to verify
	  authentication survives proxy requests
	* pokernetwork/proxyfilter.py: copy the args from the URL in the
	  proxy request
	* pokernetwork/pokersite.py: MemcacheMockup uses a singleton hash
	  to share among multiple instances in the same process (typical in
	  test environments)

2008-08-26  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/pokeravatar.py (PokerAvatar.sendPacket): Handle
	locale switching, both for avatar and pokergame, before sending a
	packet.
	(PokerAvatar.handlePacketLogic): Added handler for
	PacketPokerSetLocale().

2008-08-25  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test71_setLocaleAlwaysValid): Wrote test.
	(PokerAvatarTestCase.test72_setLocaleAlwaysFail): Wrote test.

	* pokernetwork/pokeravatar.py (PokerAvatar.handlePacketLogic):
	Added check for PACKET_POKER_SET_LOCALE.
	(PokerAvatar.setLocale): Wrote method.
	(PokerAvatar.__init__): Added initialization for localeFunc

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.configValues): Added test coverage for
	locale2translationFunc.

	* pokernetwork/pokerservice.py
	(PokerService.locale2translationFunc): Wrote function.

	* pokernetwork/pokerpackets.py (PacketPokerSetLocale): Created new
	packet type.

	* tests/test-pokerservice.py.in: Added test to see if locale tests
	can complete.
	(PokerServiceTestCase.test00_4_badLocaleObject): Wrote test.

2008-08-25  Loic Dachary <loic@dachary.org>

	* tests/test-protocol.py.in: add POKER_SET_LOCALE to the list of
	  packets
	* pokernetwork/pokerpackets.py: Simplify PacketPokerSetLocale
	  declaration
	* pokernetwork/pokersite.py, tests/test-pokersite.py.in: last
	  modification date is better stored as an int
	* conf/poker.server.xml.in, pokernetwork/pokersite.py,
	  tests/test-pokersite.py.in: Expire session cookies stored in
	  memcache after /server/@cookie_timeout seconds. In theory
	  memcache should be able to provide a way to purge entries older
	  than N seconds because it keeps the last modification date. But
	  there is no API to use this information.
	* ChangeLog: *** empty log message ***

2008-08-24  Bradley M. Kuhn  <bkuhn@ebb.org>

	* debian/control.hardy (Build-Depends): Added language-pack-fr,
	which pokernetwork/test-pokerservice.py.in now depends.

	* debian/control.edgy (Build-Depends): Added language-pack-fr,
	which pokernetwork/test-pokerservice.py.in now depends.

	* debian/control.feisty (Build-Depends): Added language-pack-fr,
	which pokernetwork/test-pokerservice.py.in now depends.

	* debian/control.dapper (Build-Depends): Added language-pack-fr,
	which pokernetwork/test-pokerservice.py.in now depends.

	* debian/control.gutsy (Build-Depends): Added language-pack-fr,
	which pokernetwork/test-pokerservice.py.in now depends.

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.configValues): Added check for locales
	configuration.

	* pokernetwork/pokerservice.py
	(PokerService._lookupTranslationFunc): Wrote method.
	(PokerService.startService): Added needed calls to
	_lookupTranslationFunc.

	* tests/test-pokertable.py.in (MockService.loadHand): Added remove
	list to get rid of exampleHand packets that some tests do not want.
	(PokerTableTestCase.test31_kickPlayerForMissingTooManyBlinds):
	Wrote test.
	(PokerTableTestCaseWithPredefinedDecksAndNoAutoDeal.test31_kickPlayerForMissingTooManyBlinds):
	Wrote dummy test.
	(PokerTableTestCaseTransient.test31_kickPlayerForMissingTooManyBlinds):
	Wrote dummy test.

	* pokernetwork/pokertable.py
	(PokerTable.cashGame_kickPlayerSittingOutTooLong): Wrote method.
	(PokerTable.update): Added call to
	cashGame_kickPlayerSittingOutTooLong(), but only when table is
	valid.

	* tests/test-pokertable.py.in (MockService.getMissedRoundMax):
	Added method.
	(MockService.__init__): Added setting of missed_round_max.
	(PokerTableTestCase.setUp): Added test for proper max_missed_round
	setting.

	* pokernetwork/pokertable.py
	(PokerTable.__init__): Added set of self.max_missed_round by
	checking table override then server default.

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.test00_3_configValues): Wrote test.
	(PokerServiceTestCase.configValues): Added arg and check for
	missed_round_max.

	* pokernetwork/pokerservice.py (PokerService.getMissedRoundMax):
	Wrote method.

	* conf/poker.server.xml.in: Added max_missed_round setting, for
	server-wide and table One.

	* pokernetwork/pokerservice.py (PokerService.__init__): Added
	missed_round_max setting from the /server/@max_missed_round.

2008-08-23  Loic Dachary <loic@dachary.org>

	* tests/testmessages.py: fix broken verbose mode (using what
	  variable instead of string variable)
	* tests/test-protocol.py.in: add GetPlaces packets
	* tests/test-pokertable.py.in: mockup eventTable and
	  updateTableStats
	* tests/test-pokersite.py.in: mockup getPlayerPlaces
	* tests/test-pokerservice.py.in: . destroy db on teardown (was
	  commented out)
	  . implement PlayerPlacesTestCase to test GetPlaces
	  . implement ResthostTestCase to test all functions related to the
	  update of the resthost table
	* tests/test-pokerclient.py.in: . do not force verbosity to 6
	  . run PokerClientFactoryTestCase (previously commented out by
	  accident)
	* tests/test-pokeravatar.py.in: add test70_poll and
	  test69_getPlayerPlaces
	* tests/Makefile.am: add test-proxyfilter.py to the list of tests
	* pokernetwork/pokertable.py: . the eventTable of PokerService is
	  notified whenever a packet is sent to the players so that the
	  last modified date of the routes are updated
	  . when a turn finishes, the updateTableStats function of
	  PokerService is called to update the stats fields of the
	  pokertables to reflect the new PokerGame values
	* pokernetwork/pokersite.py: . pipesFailed and deferRender:
	  Report only if the request has not been finished already.
	  It is the responsibility of each filter to handle errors
	  either by passing them on the errback chain or by filling
	  the request with a proper report.
	  . stopFactory expires all active sessions
	  . the session is expired if and only if there are not tourneys
	  and no tables for this avatar
	* pokernetwork/pokerservice.py: . startService fills the resthost
	  table row and keeps the serial
	  . stopService removes the resthost entry and the corresponding
	  routes after all tables have been closed
	  . disconnectAll is made a PokerService function for testing
	  purposes
	  . select tourney schedule run by the server by filtering with the
	  resthost serial
	  . convey the resthost_serial when creating a tourneys row from a
	  tourneys_schedule row
	  . when a tournament finished, remove the route if any
	  . tourneyStats and tourneSelect use the SQL database instead of
	  in core datastructure
	  . eventTable function updates or create the route to a table with
	  the last modified date
	  . statsTable and listTables use the SQL database instead of in
	  core datastructure
	  . setupResthost function creates an entry for the server in the
	  resthost table if a <resthost> element is found in the
	  configuration file
	  . cleanupResthost destroys all routes and the resthost
	  . packet2resthost returns the URL to the server to which the
	  packet given in argument must be routed
	  . getPlayerPlaces returns the serials of the tourneys and tables
	  to which a given user is seated or registered
	  . updateTableStats is called whenever a game turn finishes to
	  update the corresponding record in the database. It is a new
	  function that was not necessary when the listTable was
	  implemented using in core datastructure
	  . a route to a table is delete from the database when the
	  destroyTable function is called
	  . the pokertables row is filled with all the informations
	  necessary for the PokerTable packet when the table is created
	  (previously was only the serial and the name)
	  . the route to a table is added when the table is created
	  . the cleanupCrashedTables function loops over the tables from
	  the configuration file instead of deleting and cleaning all
	  tables
	* pokernetwork/pokerpackets.py: add GetPlayerPlaces and
	  PlayerPlaces packets
	* pokernetwork/pokerdatabase.py: literal helper function for
	  brievety
	* pokernetwork/pokeravatar.py: . listTable does not built the list
	  of packets from in core but from the output of a SQL request
	  . implement GET_PLAYER_PLACES
	  . implement POLL
	  . keep track of all the tourneys to which a user is registered in
	  the tourneys[] table
	* database/1.6.0-1.7.0.sql, database/schema.sql.in: . fill the
	  pokertables table to include all fields needed for the PokerTable
	  packet
	  . add resthost_serial to tourneys + tourneys schedule, which is
	  redundant with the route table but speedup requests
	  . index the state of a tourney and the rank of user2tourney for
	  speed
	  . add the resthost table for each table to get a route serial and
	  declare the URL to which it can be reached
	  . add a route table that links table or tourney serials to the
	  resthost that owns them
	* configure.ac: add tests/test-proxyfilter.py
	* conf/poker.server.xml.in: . cleanup='yes' by default removes the
	  BOTS from the server database at bootstrap, otherwise it is left
	  untouched
	  . <resthost> element declares a resthost row in the database and
	  triggers tourney/tables routes registration
	  . proxyfilter.py inclusion example as a rest_filter to take
	  advantage of the route tables

2008-08-21  Loic Dachary <loic@dachary.org>

	* tests/test-proxyfilter.py.in: test connection refused
	* pokernetwork/proxyfilter.py: . use dedicated request methods
	  instead of direct transport.write
	  . discard ConnectionDone error

2008-08-20  Loic Dachary <loic@dachary.org>

	* pokernetwork/proxyfilter.py: avoid calling the client deferred
	  twice
	  do not return on error if a ConnectionDone is sent to
	  ConnectionLost
	  rewind the request to the beginning before feeding it to the
	  ClientFactory
	* tests/test-proxyfilter.py.in: use the proxy on 19480
	* tests/test-proxyfilter.py.in: TableJoin thru proxy
	* pokernetwork/pokerpackets.py: s/currency/currency_serial/
	* pokernetwork/pokerpackets.py: PokerPoll for REST polling purposes
	  (sort of Ping with a game_id and tourney_serial)
	* pokernetwork/proxyfilter.py: ProxyClientFactor is local (not from
	  the twisted proxy sample implementation because error handling is
	  inapropriate)
	* tests/test-proxyfilter.py.in: finalize proper conditions to run
	  the proxyfilter code
	* pokernetwork/proxyfilter.py: poker reverse proxy
	* tests/test-proxyfilter.py.in: test stub for proxyfilter,
	  involving a server and a proxy running on 127.0.0.1:19480 and
	  127.0.0.1:19481 respectively

2008-08-19  Loic Dachary <loic@dachary.org>

	* tests/test-pokerservice.py.in: test00_config : do not call
	  stopService from within the tests
	  test01_auth : restore database for the benefit of the shutdown
	  process
	* tests/test-pokerservice.py.in: class to cover all tourneySelect
	  cases
	* tests/test-pokerservice.py.in: coverage for the listTables
	  function

2008-08-17  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerservice.py.in
	(TourneyManagerTestCase.test01_no_rank): Renamed test, added a few
	tests for output.  Added client mock-up.
	(PokerServiceTestCase.ClientMockup.sendPacketVerbose): Added
	packet list.
	(PokerServiceTestCase.ClientMockup.join): Wrote method.
	(PokerServiceTestCase.ClientMockup.sendPacket): Wrote method.
	(PokerServiceTestCase.ClientMockup.getSerial): Wrote method.
	(PokerServiceTestCase.test15_runTourney): Added various additional
	testing data related to having a client instantiated.
	(PokerServiceTestCase.test09_endOfTournamentsNotInPlayers): Added
	arg to ClientMockup() instantiate.
	(PokerServiceTestCase.test10_endOfTournamentsNoPrize): Added
	arg to ClientMockup() instantiate.
	(PokerServiceTestCase.test11_endOfTournamentsPrize): Added
	arg to ClientMockup() instantiate.

	* pokernetwork/pokerservice.py (PokerService.tourneyGameFilled):
	Added call to joinedCountIncrease() when client is connected.

2008-08-17  Loic Dachary <loic@dachary.org>

	* conf/poker.server.xml.in: max default is 1000
	* pokernetwork/pokerservice.py: table serial is extracted from the
	  MySQL database instead of the in-core counter
	* tests/test-pokerservice.py.in: Table numbers changed from 100 to
	  1, 101 to 2 etc
	* tests/test-pokerclient.py.in: Table numbers changed from 100 to
	  1, 101 to 2 etc
	* tests/test-pokeravatar.py.in: Table numbers changed from 100 to
	  1, 101 to 2 etc
	* database/schema.sql.in: Larger field for table name and unique
	  constraint
	* database/1.6.0-1.7.0.sql: Larger field for table name and unique
	  constraint

2008-08-17  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerauth.py.in
	(PokerAuthTestCase.test04_authWithoutAutoCreate): Wrote method.

	* tests/test-pokerauth.py.in
	(PokerAuthTestCase.test03_authWithAutoCreate): Wrote test.

2008-08-16  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokertable.py.in
	(PokerTableTestCase.test28_tooManyPlayers): Wrote test.
	(PokerTableTestCaseTransient.test28_tooManyPlayers): Wrote test.
	(PokerTableTestCase.test29_leavingDoesNotDecreaseCount): Wrote test.
	(PokerTableTestCase.test30_justEnoughPlayers): Wrote test.
	(PokerTableTestCase.test16_autoMuckTimeoutPolicy): Added test on
	bet mismatch output.

	* pokernetwork/pokertable.py (PokerTable.joinPlayer): Added test
	for exceeding of maximum join.  Added joinedCountIncrease() call.
	(PokerTable.destroyPlayer): Added  joinedCountDecrease() call.

	* pokernetwork/pokerpackets.py (PacketPokerTableJoin): Added FULL
	code and documentation on it.

	* tests/test-pokerservice.py.in
	(PokerServiceTestCase.test00_configValues): Added tests for
	instance variables that only exist at startService.
	(PokerServiceTestCase.test19_testJoinCounter): Wrote test.

	* pokernetwork/pokerservice.py (PokerService.__init__): renamed
	instance variable from max_joined to joined_max
	(PokerService.joinedCountDecrease): Wrote method.
	(PokerService.joinedCountIncrease): Wrote method.
	(PokerService.joinedCountReachedMax): Wrote method.

	* pokernetwork/pokerservice.py (PokerService.__init__): Added
	max_joined instance variable from the /server/@max_joined setting.

	* tests/test-pokerservice.py.in
	(MonitorTestCase.test00_configValues): Wrote test.

2008-08-16  Loic Dachary <loic@dachary.org>

 	* Release 1.7.0

	* tests/test-pokerservice.py.in: get rid of extra verbosity
	* pokernetwork/pokeravatar.py, pokernetwork/pokersite.py: The role
	  is set when creating the avatar, always. Not just when relogin

2008-08-15  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokersite.py, tests/test-pokersite.py.in: move
	  cookie expiration functions to the Request subclass
	  when an error is caught, the session cookie is expired if found
	* pokernetwork/pokersite.py, tests/test-pokersite.py.in: the
	  checkExpire timer silently expires the session if an assert
	  fails. typically happens when a session becomes invalid because
	  another for the same user was started
	* tests/test-pokersite.py.in: test the memcache inconsistency
	  assert and catch of the corresponding error in the context
	* pokernetwork/pokersite.py: A use addCallback and then addErrback
	  instead of callbacks otherwise
	  a traceback in the callback will *not* be reported by the errback
	  B 'set' is used instead of 'add' because the latest session wins,
	  even if the previous is still active. When a session is
	  properly closed, the serial memecache entry is discarded.
	  But if the session is not closed, there is a spurious
	  serial entry referencing the old session. When a request
	  arrives with the old session uid (check getSession #xref1) it
	  will
	  trigger an error and do nothing.

2008-08-14  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokeravatar.py, pokernetwork/pokersite.py,
	  tests/test-pokersite.py.in: always set explain mode when using
	  /POKER_REST

2008-08-13  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py, pokernetwork/pokersite.py,
	  tests/test-pokersite.py.in, tests/testmessages.py: upload and
	  download the avatar with /UPLOAD and /AVATAR resource
	  (proppy@aminche.com)

2008-08-12  Loic Dachary <loic@dachary.org>

	* tests/test-pokersite.py.in: the service mockup needs
	  serial2client for relogin
	* pokernetwork/pokeravatar.py: login with role play implies
	  registering the avatar in serial2client
	* pokernetwork/pokersite.py: pipesFailed must return True instead
	  of Failure, otherwise the deferred chain never goes back to
	  processing callbacks: it always calls pipeFailed on each request,
	  with the same error.
	* pokernetwork/pokerservice.py: set monitors before cleanup as it
	  may be required when a player leaves
	* pokernetwork/pokeravatar.py, tests/test-pokersite.py.in: when an
	  avatar is logged in with the relogin function, the role must be
	  set to PLAY
	* pokernetwork/pokersite.py: always ste isLogged
	* ChangeLog: *** empty log message ***
	* pokernetwork/pokersite.py, tests/test-pokersite.py.in: discard
	  session only if not logged in

2008-08-11  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokersite.py: use gmtime instead of localtime
	* tests/Makefile.am, tests/test-pokersite.py.in,
	  tests/testerrorfilter.py: tests when rest filters throw an
	  exception (involve using the notify mechanism of server.request)
	  test that cookie is cleared when the session expires
	* tests/test-webservice.py.in: the utf8 converter helpers (for
	  SOAP/XMLRPC/REST) moved from pokerservice to pokersite
	* pokernetwork/pokerservice.py, pokernetwork/pokersite.py: move the
	  utf8 converter helpers (for SOAP/XMLRPC/REST) from pokerservice
	  to pokersite

2008-08-07  Loic Dachary <loic@dachary.org>

	* tests/run.in: nullfilter cannot be listed as 100% coverage
	  because imp.load_source tries multiple path and the coverage
	  report is confused
	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in: fill
	  the tourney manager packet with prizes when available
	* Makefile.am, conf/poker.server.xml.in, pokernetwork/pokersite.py,
	  tests/Makefile.am, tests/run.in, tests/test-pokersite.py.in:
	  plugin system for REST session module

2008-08-06  Loic Dachary <loic@dachary.org>

	* conf/poker.server.xml.in, pokernetwork/pokerserver.py,
	  pokernetwork/pokerservice.py: The server.Site derivative is bound
	  to a new port to ensure backward compatibility
	* Makefile.am: 2ct memcache client
	* NEWS: *** empty log message ***
	* ChangeLog: *** empty log message ***

2008-08-05  Loic Dachary <loic@dachary.org>

	* tests/test-pokerchildren.py.in, tests/test-pokergameclient.py.in,
	  tests/test-pokerservice.py.in, tests/test-pokersite.py.in,
	  tests/test-pokertable.py.in: extra .. at the end of the insert
	  included the wrong files when doing a make distcheck. as a result
	  some files were listed twice under the same name but not the same
	  path, hence confusing the coverage report a great deal
	* tests/Makefile.am: pokersite to the end so that the coverage file
	  is not overriden
	* Makefile.am, configure.ac, debian/control, debian/control.lenny,
	  debian/control.unstable, tests/Makefile.am, tests/run.in: Add new
	  pokersite related files for distribution and dependencies
	* tests/test-pokerservice.py.in: Remove useless tests because code
	  migrated to another file.
	* tests/testmessages.py: suppress messages for
	  classes.append(pokersite.PokerResource)
	* tests/test-pokeravatar.py.in: add test68_handlePacketDefer
	* pokernetwork/pokeravatar.py: Add the relogin function that
	  simulates the actions taken when a user logs in. Used in the
	  context of a client that resumes from a session cookie.
	  Create the function loginTableUpdates to share between login and
	  relogin.
	  Add the handlePacketDefer function that is essentially the same
	  as the handlePacket function except it returns a value that is
	  friendly to the maybeDeferred twisted function.
	  Move the PING packet handling up so that it can be used even with
	  avatar for which the auth fields are incomplete.
	* pokernetwork/pokerserver.py: HTTP services use PokerSite instead
	  of the default server.Site
	* pokernetwork/pokerservice.py: Add the /POKER_REST service,
	  supporting memcache stored session cookies
	  Migrate the args2packets and packets2maps functions to the
	  pokersite file
	* conf/poker.server.xml.in: Add memcached="127.0.0.1:11211"
	  session_timeout="60" session_check="10" that are the defaults for
	  the /POKER_REST interface
	* pokernetwork/pokersite.py: the sitepath default is [] not ['']
	* pokernetwork/pokersite.py: import pokerpackets to enable
	  instantiation of more packets
	* examples/memcache-client: simple minded memcache client to
	  simulate session creation
	* examples/README: sample commands to run tests against a server

2008-08-04  Loic Dachary <loic@dachary.org>

	* tests/test-pokersite.py.in: Add test cases for helpers imported
	  from pokerservice.py
	* pokernetwork/pokersite.py: Add missing imports
	* pokernetwork/pokersite.py: new pokersite classes that specialize
	  in memcache helped session handling
	* tests/test-pokersite.py.in: test for new pokersite classes that
	  specialize in memcache helped session handling

2008-07-31  Loic Dachary <loic@dachary.org>

	* tests/test-pokertable.py.in: Add User mockup to account for the
	  additional test in pokertable getUserInfo
	* pokernetwork/pokertable.py, tests/test-pokeravatar.py.in: do not
	  try to lookup in core user information after the user is logged
	  out
	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in: fix
	  implementation of the tournament manager

2008-07-30  Loic Dachary <loic@dachary.org>

	* database/schema.sql.in: monitor table documentation

2008-07-29  Bradley M. Kuhn <bkuhn@ebb.org>

	* ChangeLog: * Restored changelog that I clobbered

2008-07-28  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokeravatar.py, pokernetwork/pokerpackets.py,
	  pokernetwork/pokerservice.py, tests/test-pokeravatar.py.in,
	  tests/test-pokerservice.py.in, tests/test-protocol.py.in:
	  implement the TourneyManager packet
	  increase the maximum number of packets in the pokerpackets pool
	  from 149 to 169
	* database/1.6.0-1.7.0.sql, database/schema.sql.in: tourney_serial
	  is included in the pokertable record, if provided

2008-07-27  Loic Dachary <loic@dachary.org>

	* pokerstats/statslogic.py: 100% coverage
	* ChangeLog: add release
	* pokerstats/statslogic.py, pokerstats/test-stats.py.in: implement
	  ranking algorithm

2008-07-27  Bradley M. Kuhn <bkuhn@ebb.org>

	* ChangeLog: r910@hughes: bkuhn | 2008-07-27 11:57:10 -0700
	  # Re added back some ChangeLog entries that I ditched during a
	  merge
	* tests/test-pokerrenderer.py.in: r874@hughes: bkuhn | 2008-07-18
	  16:28:07 -0700
	  # Removed unnecessary get_messages()
	* tests/test-pokerrenderer.py.in: r873@hughes: bkuhn | 2008-07-18
	  16:26:52 -0700
	  * Finished implementing multitest
	* ChangeLog, tests/test-pokerrenderer.py.in: r872@hughes: bkuhn |
	  2008-07-18 16:24:51 -0700
	  * Added outfit to test
	* ChangeLog, tests/test-pokerrenderer.py.in: r871@hughes: bkuhn |
	  2008-07-18 16:18:01 -0700
	  * changeState() gives a critical error when neither
	  self.protocol.user.isLogged() nor self.canHideInterface() are
	  true.
	* ChangeLog, tests/test-pokerrenderer.py.in: r870@hughes: bkuhn |
	  2008-07-18 16:08:26 -0700
	  * Wrote test for weird whta on PAY_BLIND_ANTE_SEND
	* ChangeLog, tests/test-pokerrenderer.py.in: r869@hughes: bkuhn |
	  2008-07-18 16:02:39 -0700
	  * Added test when strange "what" is given to PAY_ANTE_BLIND in
	  changeState()

2008-07-27  Loic Dachary <loic@dachary.org>

	* pokerstats/Makefile.am, pokerstats/poker.stats.xml.in:
	  configuration file is managed with dbconfig-common frontend
	  module
	* pokerstats/stats.py: application is a global variable
	* pokerstats/pokerstats.1.in: comments is not '''
	* debian/rules: running check can be controlled from
	  DEB_BUILD_OPTION variable.
	  python-poker-stats requires pycentral support
	* debian/python-poker-stats.config,
	  debian/python-poker-stats.install,
	  debian/python-poker-stats.postinst,
	  debian/python-poker-stats.postrm,
	  debian/python-poker-stats.prerm: poker-stats package support
	  files
	* debian/python-poker-network.install: list all configuration files
	  to prevent copying a configuration file from another package
	* debian/control, debian/control.dapper, debian/control.edgy,
	  debian/control.etch, debian/control.feisty, debian/control.gutsy,
	  debian/control.hardy, debian/control.lenny,
	  debian/control.unstable: source package definition for
	  poker-stats

2008-07-26  Loic Dachary <loic@dachary.org>

	* Makefile.am, configure.ac, database/1.6.0-1.7.0.sql,
	  database/schema.sql.in, pokernetwork/pokerservice.py,
	  tests/run.in, tests/test-pokerservice.py.in: implement the
	  monitor protocol server side, add pokerstats subdir to the build
	* pokernetwork/pokerclient.py: poll_frequency overriden by server
	  attribute, if present
	* pokerstats/test-stats.py.in.back: remove leftover
	* pokerstats, pokerstats/Makefile.am, pokerstats/__init__.py,
	  pokerstats/poker.stats.xml.in, pokerstats/pokerstats.1.in,
	  pokerstats/pokerstats.in, pokerstats/run.in, pokerstats/stats.py,
	  pokerstats/statslogic.py, pokerstats/test-stats.py.in,
	  pokerstats/test-stats.py.in.back: statistics poker client

2008-07-23  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerbot.py: replace poker3d with bot
	* pokerclient2d/poker2d.in: remove launched variable

2008-07-22  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokeravatar.py, pokernetwork/pokerpackets.py,
	  pokernetwork/pokerservice.py, pokernetwork/pokertable.py,
	  tests/test-pokeravatar.py.in, tests/test-pokerservice.py.in,
	  tests/test-pokertable.py.in, tests/test-protocol.py.in: Implement
	  PokerMonitor or PokerMonitorEvent for statistical module
	  notification
	* database/schema.sql.in: add locale field to user table
	* database/1.6.0-1.7.0.sql: add locale field to user table

2008-07-20  Loic Dachary <loic@dachary.org>

	* Makefile.am, database/1.6.0-1.7.0.sql: enlarge the skin_url field

2008-07-19  Loic Dachary <loic@dachary.org>

	* conf/poker.server.xml.in: currency element is now refill
	* pokernetwork/pokeravatar.py: call autorefill before handling
	  packets that may require chips to complete
	* pokernetwork/pokerservice.py, tests/test-pokerservice.py.in:
	  Implement and test the autorefill function.
	* pokernetwork/pokerauth.py: Remove the autorefill from the auth
	  module. It does not belong here.
	* tests/test-pokerrenderer.py.in: comment out tests that fail
	* pokernetwork/pokerpackets.py: document the role field of the
	  SetRole packet
	* debian/poker-web.links, debian/poker-web.postinst: poker-web
	  apache configuration is linked to the apache directory
	* conf/poker.server.xml.in: Default is to distribute playmoney to
	  the newly created user.

2008-07-18  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerrenderer.py.in
	(PokerRendererTests.test34_blindAnteDoesWhat): Wrote method.
	(PokerRendererTests.test34_confirmPayBlindBadWhat): Wrote method.
	(PokerRendererTests.test36_weirdStateinChashier): Wrote method.
	(PokerRendererTests.test36_weirdStatusDuringVariousStates):
	Renamed test.

2008-07-18  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerrenderer.py.in
	(PokerRendererTests.test34_blindAnteDoesWhat): Wrote method.
	(PokerRendererTests.test34_confirmPayBlindBadWhat): Wrote method.
	(PokerRendererTests.test36_weirdStateinChashier): Wrote method.
	(PokerRendererTests.test36_weirdStatusDuringVariousStates):
	Renamed test.

2008-07-13  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerrenderer.py.in
	(PokerRendererTests.test14_packetSelfInPositionHandleConnection):
	Wrote method.
	(PokerRendererTests.MockPokerProtocol.registerLagmax): saved func
	value for later test.
	(PokerRendererTests.MockPokerFactory.packet2game): Added support
	for noGame setting.
	(PokerRendererTests.test16_checkUpdateLagMaxWithValidGameObject):
	Wrote method.
	(PokerRendererTests.test15_checkUpdateLagMaxWithoutGameObject):
	Wrote method.
	(PokerRendererTests.MockGame.isRunning): Wrote method.
	(PokerRendererTests.MockGame.__init__): Wrote method.
	(PokerRendererTests.MockPokerFactory.__init__): added
	gameIsRunning parameter.
	(PokerRendererTests.test17_maybeStartLookCardsNoGameRunning):
	Wrote method.
	(PokerRendererTests.test18_scheduleLookCardsNoGameRunning): Wrote
	method.
	(PokerRendererTests.test19_clickSitOutCoverage): Wrote method.
	(PokerRendererTests.test20_handleMenuUnknownName): Wrote method.
	(PokerRendererTests.test21_handleLobbyUnknownAction): Wrote method.
	(PokerRendererTests.test22_currencySerial2NameNotString): Wrote method.
	(PokerRendererTests.test24_handleHandsUnknownActoin): Wrote test.
	(PokerRendererTests.test26_handleHandsReplayHand): Wrote test.
	(PokerRendererTests.test25_handleHandsOutOfState): Wrote test.
	(PokerRendererTests.test27_rotateTableWithTwo): Wrote method.
	(PokerRendererTests.test28_sendPacketCoverage): Wrote test.
	(PokerRendererTests.test29_schedulePacketCoverage): Wrote method.
	(PokerRendererTests.test30_getSeatUserNotLoggedInAndInWeirdState):
	Wrote method.
	(PokerRendererTests.MockDisplay.setRenderer): Wrot method.
	(PokerRendererTests.test31_bootstrapFirstTimeInterfaceReady):
	Wrote method.
	(PokerRendererTests.test32_bootstrapFristTimeInterfaceNotReady):
	Wrote method.
	(PokerRendererTests.test33_changeStatePayBlindFromWeird): Wrote method.

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection):
	error message for bad outfit should print outfits, not urls.

	* tests/test-pokerrenderer.py.in
	(PokerRendererTests.test13_packetPlayerArriveInHandleConnection):
	Wrote method.
	(PokerRendererTests.MockPokerFactory.getUrl): Wrote method.
	(PokerRendererTests.MockPokerFactory.getOutfit): Wrote method.
	(PokerRendererTests.MockDisplay): Made a generalized mockup for
	all tests.
	(PokerRendererTests.MockPokerFactory.getSkin): Wrote method.
	(PokerRendererTests.MockGame.isTournament): Wrote method.
	(PokerRendererTests.MockPlayer.__init__): Wrote method.

2008-07-13  Loic Dachary <loic@dachary.org>

	* tests/Makefile.am: add test-pokerauth/pokerauth.py to the
	  distribution
	* pokernetwork/pokerpackets.py, pokernetwork/pokerservice.py,
	  tests/test-pokerservice.py.in: MySQLdb python module return the
	  date field (birthdate) as a date object instead of the expected
	  string. It is converted to string for serialization in the
	  packets.
	* conf/poker.bot.xml.in, conf/poker.client.xml.in,
	  conf/poker.server.xml.in, examples/poker.bot.xml,
	  examples/poker.server-monotone.xml, examples/poker.server.xml,
	  pokerclient2d/poker2d.xml.in, tests/conf/poker.client.xml.in:
	  update version fields to 1.7.0

2008-07-13  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerrenderer.py.in
	(PokerRendererTests.test11_handleSerial): Wrote test.
	(PokerRendererTests.test12_handleConnectionBadStates): Wrote test.

2008-07-12  Loic Dachary <loic@dachary.org>

	* ChangeLog, NEWS, debian/changelog, debian/control,
	  debian/control.hardy, debian/control.unstable,
	  pokernetwork/__init__.py: bump version to 1.7.0 and acknowledge
	  Peter Eisentraut's NMU

	* tests/test-pokerchildren.py.in: use @TOUCH@ where appropriate
	  use waitpid instead of callLater timer

2008-07-12  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerrenderer.py.in (PokerRendererTests): Created
	test class and essential Mock subclasses.
	(PokerRendererTests.setUp): Wrote method.
	(PokerRendererTests): Wrote method.
	(PokerRendererTests.MockPokerFactory.__init__): Added remember variable.
	(PokerRendererTests.MockInterface): Created mock up.
	(PokerRendererTests.MockPokerProtocol): Created mock up.
	(PokerRendererTests.MockUser): Created mock up.
	(PokerRendererTests.test03_interfaceReadyWithProtocol): Wrote method.
	(PokerRendererTests.test04_handleMenuQuit): Wrote method.
	(PokerRendererTests.MockGame): Wrote mock up.
	(PokerRendererTests.MockPokerFactory.getGame): Wrote method.
	(PokerRendererTests.MockPokerProtocol.getSerial): Wrote method.
	(PokerRendererTests.MockPokerProtocol.getCurrentGameId): Wrote method.
	(PokerRendererTests.test05_sitOutButNoGame): Wrote method.
	(PokerRendererTests.MockGame): Wrote method.
	(PokerRendererTests.MockPlayer): Created mock up.
	(PokerRendererTests.test06_sitOutButWithGameBadPlayer): Wrote test.
	(PokerRendererTests.test07_chatFormatMessage): Wrote method.
	(PokerRendererTests.test08_chatLineNoGame): Wrote method.
	(PokerRendererTests.test09_showMessageNoCallback): Wrote method.
	(PokerRendererTests.test10_updateCashier): Wrote method.

2008-07-07  Johan Euphrosine  <proppy@aminche.com>

	* pokernetwork/pokerauth.py (get_auth_instance):
	Add authentification modularity.
	* pokernetwork/pokerauthmysql.py:
	Add authenfification module based on a foreign mysql database.
	* tests/test-pokerauth.py.in:
	Add tests for authentification modules lookup.

2008-07-06  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokerui/pokerrenderer.py (PokerInteractors.interactorSelected):
	Fixed reference to unknown variable "event".

	* tests/test-pokerrenderer.py.in
	(PokerInteractorsTests.MockConfig): Created mock up.
	(PokerInteractorsTests.MockPokerRenderer): Wrote method.
	(PokerInteractorsTests.MockPokerRenderer.render): Wrote method.
	(PokerInteractorsTests.test02_interactorDisplayNodeUnknownGame):
	Wrote method.
	(PokerInteractorsTests.MockPokerProtocol.getCurrentGameId): Wrote
	method.
	(PokerInteractorsTests.MockSettings): Created mock up.
	(PokerInteractorsTests.test03_interactorDisplayKnownGameSameState):
	Wrote method.
	(PokerInteractorsTests.test04_interactorDisplayKnownGameChangedState):
	Wrote method.
	(PokerInteractorsTests.test05_interactorsSyncDisplay_NoFactoryDisplay):
	Wrote method.
	(PokerInteractorsTests.MockPokerFactory.__init__): added
	self.display initialization.
	(PokerInteractorsTests.tearDown): Wrote method.
	(PokerInteractorsTests.setUp): Added override of PokerInteractor.
	(PokerInteractorsTests.MockInteractor.__init__): Set init to have
	the correct number of arguments.
	(PokerInteractorsTests.test06_interactorsSyncDisplay_displayOn):
	Wrote method.
	(PokerInteractorsTests.MockInteractor.select): Wrote method.
	(PokerInteractorsTests.MockInteractor.update): Wrote method.
	(PokerInteractorsTests.MockInteractor.resetAllTestValues): Wrote
	method.
	(PokerInteractorsTests.MockInteractor.__init__): Switched to use
	resetAllTestValues()
	(PokerInteractorsTests.test07_interactorSelected_wrongGame): Wrote
	method.
	(PokerInteractorsTests.setUp): Added reset of
	countMockInteractorsInstantiated
	(PokerInteractorsTests.MockInteractor.__init__): Added
	countMockInteractorsInstantiated
	(PokerInteractorsTests.helper_interactorSelected): Wrote method.
	(PokerInteractorsTests.test08_interactorSelected_rightGame_fold):
	Wrote method.
	(PokerInteractorsTests.test09_interactorSelected_rightGame_check):
	Wrote method.
	(PokerInteractorsTests.test10_interactorSelected_rightGame_raise):
	Wrote method.
	(PokerInteractorsTests.test11_interactorSelected_rightGame_call):
	Wrote method.
	(PokerInteractorsTests.test12_interactorSelected_rightGame_wrongName):
	Wrote method.

	* tests/testmessages.py: Added PokerInteractors to list of classes.

	* pokerui/pokerrenderer.py (PokerInteractors.error): Added method.
	(PokerInteractors.message): Added method.

	* tests/test-pokerrenderer.py.in (PokerInteractorsTests): Created
	test suite.
	(PokerInteractorsTests.MockPokerFactory): Created new mock up class.
	(PokerInteractorsTests.MockPokerRenderer): Created new mock up class.
	(PokerInteractorsTests.MockPokerProtocol): Created new mock up class.

	* pokerui/pokerrenderer.py (PokerInteractors._handleConnection):
	Added else with an error message when packet is not one that is handled.

	* tests/run.in (COVERAGE_100_PERCENT): Added pokeravatar

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.variousStartPackets): Adjusted now that bug
	in pokeravatar.handlePacketLogic() on PACKET_POKER_START actions fixed.
	(PokerAvatarTestCase.requestsWithWrongSerial): Adjusted now that bug
	in pokeravatar.handlePacketLogic() on PACKET_POKER_START actions fixed.
	(PokerAvatarTestCase): Rewrote tests to again change full coverage.

2008-07-05  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerrenderer.py.in (PokerFactoryMockup.getMessages):
	Wrote method.
	(PokerFactoryMockup.message): Wrote method.
	(PokerFactoryMockup.clearMessages): Wrote method.
	(PokerFactoryMockup.__init__): Added call to clearMessages();
	Increased verbosity.

	* tests/test-pokerinteractor.py.in
	(PokerInteractorTestCase.test_highestBetIncreaseCancelCall): Added
	checks for output.
	(PokerFactoryMockup.getMessages): Wrote method.
	(PokerFactoryMockup.message): Wrote method.
	(PokerFactoryMockup.clearMessages): Wrote method.
	(PokerFactoryMockup.__init__): Added call to clearMessages.
	Increased verbosity.
	(PokerInteractorTestCase.test_errorFake): Wrote method.

2008-07-05  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokeravatar.py: inverted condition to accept
	  POKER_START rejected valid requests

2008-07-04  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-upgrade.py.in (UpgraderTestCase.test05_getUpgrader):
	Wrote method.
	(UpgraderTestCase.test06_upgradeReady): Wrote method.

2008-06-29  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-upgrade.py.in (UpgraderTestCase.test03_noNetwork):
	Wrote method.
	(UpgraderTestCase.test01_CheckClientVersionFailed1): Added check
	for output from checkClientVersion()
	(UpgraderTestCase.test04_hostNoRespond): Wrote method.
	(UpgraderMockup.spawn): Wrote method.

	* pokernetwork/upgrade.py (Upgrader.message): Wrote method; as
	support for Upgrader.error

	* pokernetwork/upgrade.py (Upgrader.error): Wrote method; it was missing.

	* tests/test-upgrade.py.in
	(PokerClientUpgradeCheckClientVersion.test01_CheckClientVersionRemote):
	Added check for message() output from CheckClientVersion.__init__
	(PokerClientUpgradeFailedTestCase.test01_CheckClientVersionFailedAndNeedUpgrade):
	Added output checks.
	(DryrunUpgradeMockUp): Created mockup.
	(PokerClientDryrunUpgrade): Created test class.
	(PokerClientDryrunUpgrade.setUp): Wrote method.
	(PokerClientDryrunUpgrade.tearDown): Wrote method.
	(PokerClientDryrunUpgrade.test01_dryRunLineTest): Wrote method.
	(GetPatchMockUp): Created mock up class.
	(GetPatchUpgradeTest): Created test set.
	(GetPatchUpgradeTest.setUp): Wrote method.
	(GetPatchUpgradeTest.tearDown): Wrote method.
	(GetPatchUpgradeTest.test01_getPatchLine): Wrote method.

	* tests/testmessages.py: Added import of upgrade to put
	upgrade.CheckClientVersion on the messages list.

	* tests/test-upgrade.py.in (UpgraderMockup.message): Wrote method.
	(PokerSettingsMockupSource.headerGetIn): set verbose return to 6
	(PokerSettingsMockup.headerGetInt): Set verbose to return 6.

	* tests/test-pokerclient.py.in (PokerClientTestCase.setUpClient):
	Added test for delays output from PokerClientFactory.__init__
	(PokerClientTestCase.test23_checkTranslateToFileName): Wrote method.
	(PokerClientTestCase.test24_upgradeReady): Wrote method.
	(PokerClientTestCase.updatePot): Wrote method.
	(PokerClientTestCase.test25_updatePotChipsNoSidePots): Wrote method.
	(PokerClientTestCase.updatePot): Wrote method.
	(PokerClientTestCase.printUserInfo): Added check for
	handleUserInfo output.
	(PokerClientTestCase.test27_playerInfoPacket): Wrote method.
	(PokerClientTestCase.changingURLHandlePacketInfo): Wrote method.
	(PokerClientTestCase.test28_playerInfoPacket): Wrote method.
	(PokerClientTestCase.test30_playerInfoPacketChangingOutfit):
	Adapted method from test28.
	(PokerClientTestCase.test29_playerInfoPacketChangingOutfit):
	Adapated method from test27.
	(PokerClientTestCase.changingOutfitHandlePacketInfo): Adapted
	method from changingURLHandlePacketInfo.
	(PokerClientTestCase.test31_badPlayerObjectSetPlayerDelay): Wrote
	method.
	(PokerClientTestCase.tearDownCheckforConnectionLostMessage): Wrote method.
	(PokerClientTestCase.tearDownClearMessages): Wrote method.
	(PokerClientTestCase.tearDown): Added calls to the two above in callbacks.
	(PokerClientTestCase.setCrashing): Wrote method.
	(PokerClientTestCase.test32_crashClient): Wrote method.
	(PokerClientTestCase.publishDeadPacket): Wrote method.
	(PokerClientTestCase.setupDeadPacketPublish): Wrote method.
	(PokerClientTestCase.test33_sendPacketAfterLost): Wrote method.

2008-06-28  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerclient.py.in (PokerClientTestCase.ping): Added
	test for various outputs.

	* tests/test-clientserver.py.in
	(ClientServer.pingExpectingPrefix): Wrote method.
	(ClientServer.test02_pingExpectingPrefix): Wrote method.
	(ClientServer.test05_clientConnectionLost): Wrote method.
	(ClientServer.clientConnectionLost.ReasonMockUp): Wrote method.
	(ClientServer.test06_dummyClientError): Wrote method.
	(ClientServer.dummyClientError): Wrote method.

	* tests/test-protocol.py.in: Set verbose to 5 so messages are printed.
	(UGAMEProtocolTestCase.testConnectionLost): Added output search.
	(UGAMEProtocolTestCase.setUp): Switched verbosity to 5 so messages
	are printed.
	(UGAMEProtocolTestCase.testConnectionLostWithProtocolOk): Wrote method.
	(UGAMEProtocolTestCase.testHandleVersion): Added test for "protocol
	established" output (and for when it isn't done).
	(UGAMEProtocolTestCase.testProcessQueues): Added test for queue delay.
	(UGAMEProtocolTestCase.testHandleData): Added test for output from
	handleData().
	(UGAMEProtocolTestCase.testForceError): Wrote method.

2008-06-26  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerchildren.py.in
	(PokerChildrenTestCase.test01_rsync_ok): Added search for
	PokerRsync::spawn message.
	(PokerChildrenTestCase.test04_rsync_fail_host_does_not_respond):
	Added search for ERROR: PokerRsync message.
	(PokerChildrenTestCase.test05_rsync_fail_no_network): Added search
	for processEnded message.
	(PokerChildrenTestCase.test12_testErrorFunction): Wrote method.
	(PokerChildrenTestCase.test01_rsync_ok.rsync_done): Added test for
	outReceived().

2008-06-25  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerchildren.py.in (PokerChildrenTestCase): Switched
	to @SLEEP@ throughout.

	* configure.ac: Now checks for touch and sets @TOUCH@.

	* debian/control.unstable (Build-Depends): Added coreutils.

	* debian/control.lenny (Build-Depends): Added coreutils.

	* debian/control.hardy (Build-Depends): Added coreutils.

	* debian/control.gutsy (Build-Depends): Added coretuils.

	* debian/control.feisty (Build-Depends): Added coreutils.

	* debian/control.etch (Build-Depends): Added coreutils.

	* debian/control.edgy (Build-Depends): Added coreutils.

	* debian/control.dapper (Build-Depends): Added coreutils.

	* debian/control (Build-Depends): Added coreutils.

	* tests/test-pokerchildren.py.in
	(PokerChildrenTestCase.test10_neverReady): Wrote method.
	(PokerChildrenTestCase.test11_spawnInDir): Wrote method.

2008-06-19  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerchildren.py.in
	(PokerChildrenTestCase.test03_child_kill.process_kill): Added
	check for command line output.

2008-06-15  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerchildren.py.in
	(PokerChildrenTestCase.test06_child_kill_missing_pid.process_kill):
	Wrote method.
	(PokerChildrenTestCase.test03_child_kill.process_kill): Added
	search for verbose output.
	(PokerChildrenTestCase.test07_child_force_windows_system): Wrote
	method.
	(PokerChildrenTestCase.test08_brokenKill): Wrote method.
	(PokerChildrenTestCase.test09_brokenWaitPID.process_kill): Wrote
	method.
	(PokerChildrenTestCase.test03_child_kill.process_kill): Added
	check for savepid() output.

2008-06-14  Loic Dachary <loic@dachary.org>

	* tests/test-currencyclient.py.in, tests/testmessages.py: add
	  get_messages function to avoid confusion when importing the
	  variable
	* tests/testmessages.py: must be global or local variable is set

2008-06-14  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-currencyclient.py.in
	(FakeCurrencyClientTestCase.test05_mergeNotes.mergeNotes.validate):
	Added check for mergeNotes in verbose message output.
	(FakeCurrencyClientTestCase.getNote): Added check for _buildNote
	and getNote in verbose message output.
	(FakeCurrencyClientTestCase.test03_checkNote.checkNote): Added
	check for checkNote in verbose message output.
	(FakeCurrencyClientTestCase.getCommitedNote): Derived method to
	add search for "commit" output from message printing.
	(FakeCurrencyClientTestCase.getCommitedNote.checkCommitVerboseOutput):
	Derived method to check that "commit" output occurs. 

2008-06-12  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-currencyclient.py.in
	(FakeCurrencyClientTestCase.test04_changeNote.changeNote): Derived
	method to handle different behavior in Fake.
	(FakeCurrencyClientTestCase.test09_getNote_with_id): Derived
	method as test not needed for Fake
	(FakeCurrencyClientTestCase.test07_breakNote.checkOutput): Derived
	method to check for message output from FakeCurrencyClient. 

	* tests/testmessages.py (clear_all_messages): Renamed function
	from clear_messages.

	* tests/test-currencyclient.py.in
	(FakeCurrencyClientTestCase.test05_mergeNotes): Derived method
	to handle different behavior in Fake.
	(FakeCurrencyClientTestCase.test06_meltNotes): Derived method to
	handle different behavior in Fake.

	* tests/testmessages.py (clear_messages): Wrote function.

2008-06-09  Loic Dachary <loic@dachary.org>

	* tests/test-clientserver.py.in: move the invalid protocol test to
	  a dedicated test class. It is much easier to implement without
	  running actual clients or evening listening to the port, because
	  the error condition can be triggered by sending a few invalid
	  bytes.

2008-06-09  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-clientserver.py.in (FakeUser): Created class.
	(ClientServer.quit): Added test for ping timeout on server when
	client quits.
	(InvalidProtocol): Renamed to DummyServerTests
	(DummyServerTests.test02_pingRenew): Wrote test.

2008-05-25  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-clientserver.py.in (ClientServer.killThenPing): Wrote
	function.
	(ClientServer.test03_killThenPing): Wrote function.
	(ClientServer.test04_deadServerTransport): Wrote function.
	(ClientServer.deadServerTransport): Wrote function.
	Added copyright notice.

2008-05-23  Loic Dachary <loic@dachary.org>

	* Release 1.6.0

	* pokernetwork/pokeravatar.py: Move PACKET_POKER_TABLE_JOIN
	  handling before table selection otherwise it is ignored when the
	  player has already joined the table.

2008-05-22  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: PacketPokerTourneyPlayersList and
	  PacketPokerPlayersList specify field type
	* pokernetwork/pokerpackets.py: PacketPokerTourneyPlayersList and
	  PacketPokerPlayersList documentation fixes

2008-05-21  Loic Dachary <loic@dachary.org>

	* debian/control, debian/control.unstable: poker2d depends on
	  python-openssl

2008-05-20  Loic Dachary <loic@dachary.org>

	* tests/run.in: not running a makefile, @echo won't do no good
	* pokernetwork/client.py, pokernetwork/currencyclient.py,
	  pokernetwork/pokerchildren.py, pokernetwork/pokerclient.py,
	  pokernetwork/pokertable.py, pokernetwork/protocol.py,
	  pokernetwork/server.py, pokernetwork/upgrade.py,
	  pokerui/pokerinteractor.py, pokerui/pokerrenderer.py,
	  tests/run.in, tests/test-pokeravatar.py.in,
	  tests/test-pokercashier.py.in, tests/test-pokerchildren.py.in,
	  tests/test-pokerclient.py.in,
	  tests/test-pokerclientpackets.py.in,
	  tests/test-pokerpackets.py.in, tests/test-pokerservice.py.in,
	  tests/test-quit.py.in, tests/test-string.py.in,
	  tests/test-upgrade.py.in, tests/testpackets.py: replace print
	  with calls to self.message. systematic use of the testmessage.py
	  library to control verbosity. comment on how to figure out if
	  lines modified are covered by the python tests.
	* tests/testmessages.py: re-implement all, implement reentrance,
	  searching the logs. cover more poker-network files.
	* tests/test-pokertable.py.in: implement the new TableJoin semantic
	  (re-send the packets). Fix numerous timer & verbosity polution to
	  reduce the test verbosity and run time.
	* pokernetwork/pokerpackets.py: document the new TableJoin semantic
	  (re-send the packets). Fix python-2.5 deprectation warnings.
	  Cannonicalize packet sequence numbers.

2008-05-19  Loic Dachary <loic@dachary.org>

	* ChangeLog, NEWS, conf/poker.bot.xml.in, conf/poker.client.xml.in,
	  conf/poker.server.xml.in, debian/changelog,
	  examples/poker.bot.xml, examples/poker.server-monotone.xml,
	  examples/poker.server.xml, pokerclient2d/poker2d.xml.in,
	  pokernetwork/__init__.py, tests/conf/poker.client.xml.in,
	  tests/test-packets.py.in: bump to version 1.6.0
	* tests/testclock.py: clock must be set in reactor in twisted >=
	  8.0.1
	* tests/test-pokeravatar.py.in: test if explain can be sent
	  multiple times
	* tests/coverage.py: upgrade from
	  http://nedbatchelder.com/code/modules/coverage.html
	* pokernetwork/pokeravatar.py: PACKET_POKER_EXPLAIN can be sent
	  multiple times

2008-05-06  Loic Dachary <loic@dachary.org>

	* Release 1.5.0

	* pokernetwork/pokerpackets.py: update PacketPokerProcessingHand
	  documentation

2008-05-01  Loic Dachary <loic@dachary.org>

	* Makefile.am, configure.ac, database/1.4.0-1.5.0.sql,
	  database/pokerdatabase.5.in, database/pokerdatabaseupgrade.8.in,
	  database/schema.sql.in, pokernetwork/pokercashier.py,
	  pokernetwork/user.py, tests/setupMysqlVariables,
	  tests/test-pokercashier.py.in, tests/test-pokerclient.py.in,
	  tests/test-pokerdatabase.py.in, tests/test-pokertable.py.in: user
	  name may have up to 50 characters
	  manual page to explain the database constraints
	  copyright notices updates

2008-04-30  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: PacketPokerRebuy documentation

2008-04-21  Bradley M. Kuhn <bkuhn@ebb.org>

	* ChangeLog, pokernetwork/pokercashier.py: r530@hughes: bkuhn |
	  2008-04-20 22:10:18 -0400
	  * Added pragma: no cover for an sql statement that clearly is
	  covered
	  when you step through.

2008-04-20  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokeravatar.py, pokernetwork/pokerclient.py,
	  pokernetwork/pokerpackets.py, tests/test-pokeravatar.py.in,
	  tests/test-pokerclient.py.in: use minMoney to set the minimum
	  amount to rebuy
	* HOWTO-install-from-sources: some updates to the
	  install-from-source instructions

2008-04-20  Bradley M. Kuhn  <bkuhn@ebb.org>

	* pokernetwork/pokercashier.py (PokerCashier.cashOutUpdateSafe):
	Added #pragma: no cover, since these lines are clearly covered by
	test03 in tests/test-pokercashier.py.in but hit the known bug in
	coverage.py.

	* tests/test-pokercashier.py.in
	(PokerCashierTestCase.test14_cashOutUpdateSafeSecondPartFails):
	Wrote function.

	* pokernetwork/pokercashier.py (PokerCashier.cashOutUpdateSafe):
	"message" was not a defined variable when called from the
	PacketError.  Created message and used it both for error output
	and in the return packet.

2008-04-19  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokercashier.py.in
	(PokerCashierTestCase.test12_cashOutCollectWithoutTransaction):
	Wrote function.
	(PokerCashierTestCase.test13_cashOutUpdateSafeTest): Wrote
	function.

	* pokernetwork/pokercashier.py (PokerCashier.cashOutCollect):
	Added #pragma: no cover, since these lines are clearly covered by
	test03 in tests/test-pokercashier.py.in but hit the known bug in
	coverage.py.

	* tests/test-pokercashier.py.in
	(PokerCashierTestCase.test11_duplicateSafeEntriesForCashInValidateNote):
	Wroet function.

	* pokernetwork/pokercashier.py (PokerCashier.cashInValidateNote):
	"message" was not a defined variable when called from the
	PacketError.  Created message and used it both for error output
	and in the return packet.

	* tests/test-pokercashier.py.in
	(PokerCashierTestCase.test10_foundCounterRowBreakingNote): Wrote function.

2008-04-19  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokeravatar.py, pokernetwork/pokerclient.py,
	  pokernetwork/pokerpackets.py, tests/test-pokerclient.py.in: class
	  PacketPokerBuyInLimits(Packet):
	  Semantics: the buy-in boundaries for "game_id" in the range
	  ["min","max"]. An optimal buy-in is suggested in "best".
	  
	  Direction: server => client
	  
	  Context: sent immediately after the PacketPokerTable packet.
	  
	  min: minimum buy-in in cent.
	  max: minimum buy-in in cent.
	  best: optimal buy-in in cent.
	  game_id: integer uniquely identifying a game.

2008-04-16  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: PacketPokerExplain must be sent
	  before login.

2008-04-15  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: PokerBet is not used, use
	  PokerRaise instead

2008-04-15  Bradley M. Kuhn  <bkuhn@ebb.org>

	* ChangeLog, tests/test-pokercashier.py.in: r497@hughes: bkuhn |
	  2008-04-14 22:11:19 -0400
	  * Began work on test that expects the transaction to already
	  exist in
	  counter table. Not complete yet.
	* ChangeLog, pokernetwork/pokercashier.py: r496@hughes: bkuhn |
	  2008-04-14 20:45:20 -0400
	  * #pragma: no cover is needed on this line in cashInValidateNote
	  because
	  it presumably hits a known bug in coverage.py

2008-04-14  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokercashier.py.in
	(PokerCashierTestCase.test10_foundCounterRowBreakingNote): Wrote function.

	* pokernetwork/pokercashier.py (PokerCashier.cashInValidateNote):
	Added '#pragma: no cover' for lines that hits bug in coverage.py.

2008-04-13  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokercashier.py.in
	(PokerCashierTestCase.test08_forcecashInUpdateSafeFail): Wrote function.
	Added my copyright notice.
	(PokerCashierTestCase.test09_forceCashInUpdateCounter): Wrote function.

	* pokernetwork/pokercashier.py (PokerCashier.cashInUpdateSafe):
	"message" was not a defined variable when called from the
	PacketError.  Created message and used it both for error output
	and in the return packet.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test61_tableCreateFails): Wrote function.
	(PokerAvatarTestCase.createTableForceFail): Wrote function.
	(PokerAvatarTestCase.test62_ignoreAutoBlindAnteInTourney): Wrote
	function.
	(PokerAvatarTestCase.autoBlindAnteForceTourney): Wrote function.
	(PokerAvatarTestCase.joinTable): Indention bug in the testing of
	"found" variable; should be outside of the "for packet" loop.
	(PokerAvatarTestCase.setUp): Added a third client; only used for
	test 63.
	(PokerAvatarTestCase.joinTableWhenHandRunning): Wrote function.
	(PokerAvatarTestCase.test63_newObserver): Wrote function.
	(PokerAvatarTestCase.test64_testTinyFunctions): Renamed function
	from test99_testTinyFunctions.
	(PokerAvatarTestCase.statsQuery): Fixed packet.players to be 3,
	since I now have three players connected, not two.

2008-04-10  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.doLogoutSucceed): Renamed function from
	doLogout as succeed/fail cases are now split.
	(PokerAvatarTestCase.doLogoutFail): split out doLogout fail
	conditions.

2008-04-06  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test53_autoMuck): Wrote function.
	(PokerAvatarTestCase.autoMuck): Wrote function.
	(PokerAvatarTestCase.test54_doQuit): Wrote function.
	(PokerAvatarTestCase.tableQuit): Wrote function.
	(PokerAvatarTestCase.joinTableForceFail): Wrote function.
	(PokerAvatarTestCase.test55_tableJoinWhenFails): Wrote function.
	(PokerAvatarTestCase.handReplayWithoutTable): Wrote function.
	(PokerAvatarTestCase.test56_handReplyNoTable): Wrote function.
	(PokerAvatarTestCase.test54_doTableQuit): Renamed function from
	test54_doQuit to avoid confusion with test57_doFullQuit.
	(PokerAvatarTestCase.test57_doFullQuit): Wrote function.
	(PokerAvatarTestCase.fullQuit): Wrote function.
	(PokerAvatarTestCase.test58_packetLogoutSucceed): Wrote function.
	(PokerAvatarTestCase.doLogout): Wrote function.
	(PokerAvatarTestCase.tourneySelect): Fixed total for expected
	tourneys.  This should probably be changed -- why do we have so
	many test-created sitngo's?
	(PokerAvatarTestCase.test59_packetLogoutFailed): Wrote function.
	(PokerAvatarTestCase.test60_handSelectAllWithWhere): Wrote
	function.

2008-03-24  Loic Dachary <loic@dachary.org>

	* NEWS, conf/poker.bot.xml.in, conf/poker.client.xml.in,
	  conf/poker.server.xml.in, debian/changelog,
	  examples/poker.bot.xml, examples/poker.server-monotone.xml,
	  examples/poker.server.xml, pokerclient2d/poker2d.xml.in,
	  pokernetwork/__init__.py, tests/conf/poker.client.xml.in: bump to
	  version 1.5.0
	* pokernetwork/pokerservice.py, tests/test-webservice.py.in:
	  implement JSONP and custom session names

2008-03-20  Loic Dachary <loic@dachary.org>

	* Release 1.4.0

	* database/schema.sql.in: Do not create many tournaments by
	  default. A sitngo and a regular tournament are enough.
	* tests/conf/poker.client.xml.in: version 1.4.0
	* tests/test-webservice.py.in: - twisted-2.5 ports
	  - normalize "no sessions"
	  - tests for session=clear session=new on REST API
	  - tests for jsonp on REST API
	* COPYING + *: GPLv3+ upgrade
	* tests/test-pokeravatar.py.in: Only two tournaments by default.
	* pokernetwork/pokerservice.py: Split the from zope.interface
	  import to avoid python warnings.
	  Fix cookie session comment for clarity.
	  HTTP based protocols conversion from packets to result are given
	  the request in argument. To detect the jsonp argument, for
	  instance.
	  Implement session clear (forget about the session) and renew
	  (clear + get another session).
	* tests/run.in: - load xdebug to enable coverage report of php code
	  - archive pydb --fntrace --basename pearl
	* tests/test-pokerservice.py.in: test16 & test17 did not return the
	  deferred. Therefore the trial twisted test framework assumed the
	  test was finished and killed the connect. However, because the
	  reactor was still running, the poker action kept going. And it
	  eventually did a MySQL request on a DEAD CONNECTION TO MYSQL.
	  Hence the "InterfacError" which should read : connection to the
	  server is dead and you're trying to use it anyways.

2008-03-19  Loic Dachary <loic@dachary.org>

	* pokernetwork/protocol.py: keep the worst lag instead of keeping
	  the last lag (non reported bug)
	* debian/python-poker-network.init: use pycentral to locate scripts
	  instead of guessing

2008-03-17  Loic Dachary <loic@dachary.org>

	* AUTHORS, ChangeLog, NEWS, conf/poker.bot.xml.in,
	  conf/poker.client.xml.in, conf/poker.server.xml.in,
	  debian/changelog, examples/poker.bot.xml,
	  examples/poker.server-monotone.xml, examples/poker.server.xml,
	  pokerclient2d/poker2d.xml.in, pokernetwork/__init__.py: bump
	  version to 1.4.0

2008-03-14  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test53_autoMuck): Wrote function.
	(PokerAvatarTestCase.autoMuck): Wrote function.
	(PokerAvatarTestCase.test54_doQuit): Wrote function.
	(PokerAvatarTestCase.tableQuit): Wrote function.
	(PokerAvatarTestCase.joinTableForceFail): Wrote function.
	(PokerAvatarTestCase.test55_tableJoinWhenFails): Wrote function.
	(PokerAvatarTestCase.handReplayWithoutTable): Wrote function.
	(PokerAvatarTestCase.test56_handReplyNoTable): Wrote function.
	(PokerAvatarTestCase.test54_doTableQuit): Renamed function from
	test54_doQuit to avoid confusion with test57_doFullQuit.
	(PokerAvatarTestCase.test57_doFullQuit): Wrote function.
	(PokerAvatarTestCase.fullQuit): Wrote function.

2008-03-12  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: table display information

2008-03-11  Bradley M. Kuhn  <bkuhn@ebb.org>

	* ChangeLog, tests/test-pokeravatar.py.in: r387@hughes: bkuhn |
	  2008-03-10 21:58:48 -0400
	  * Improved tests that expect a simple string or single packet in
	  return.
	* ChangeLog, tests/test-pokeravatar.py.in: r386@hughes: bkuhn |
	  2008-03-10 19:44:37 -0400
	  * Began work on test to cover odds and ends of various packet
	  types
	  processed by pokeravatar.handlePacketLogic()

2008-03-10  Bradley M. Kuhn  <bkuhn@ebb.org>

	* Release 1.3.0

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.variousPacketsWithStringOrSinglePacketReturn):
	Wrote function.
	(PokerAvatarTestCase.test52_variousPackets): Wrote function.


2008-03-09  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.variousStartPackets): Wrote function.
	(PokerAvatarTestCase.test47_startPackets): Wrote function.
	(PokerAvatarTestCase.badSeatTable): Wrote function.
	(PokerAvatarTestCase.test48_seatPackets): Wrote function.
	(PokerAvatarTestCase.test49_badRebuy): Wrote function.
	(PokerAvatarTestCase.badBuyRebuyRequest): Wrote function.
	(PokerAvatarTestCase.test50_chat): Wrote function.
	(PokerAvatarTestCase.chatItUp): Wrote function.
	(PokerAvatarTestCase.leaveTable): Wrote function.
	(PokerAvatarTestCase.test51_doLeave): Wrote function.

2008-03-01  Loic Dachary <loic@dachary.org>

	* tests/test-pokeravatar.py.in: no need to check the position as it
	  is 1) redundant with the serial, 2) consistency has been checked
	  in the pokerexplain.py tests
	* tests/test-pokerexplain.py.in: add check to make sure the
	  position field of the PokerPosition packet is set.
	* pokernetwork/pokerexplain.py: because PacketPosition does not
	  serialize the serial member, the seat in position must be set for
	  clients requiring explain mode over the network (as opposed to
	  python based clients that embed the library).

2008-02-29  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py: fix the queuing packet bug +
	  document HTTP based protocols
	* tests/test-webservice.py.in: test to prove the queuing packet bug

2008-02-26  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.loseConnection): Wrote function.
	(PokerAvatarTestCase.test44_possibleObserverLoggedIn): Wrote function.
	(PokerAvatarTestCase.test45_possibleObserverLoggedInWithAnte):
	Wrote function.
	(PokerAvatarTestCase.loseConnectionAnte): Wrote function.
	(PokerAvatarTestCase.listTables): Four tables now.

2008-02-25  Loic Dachary <loic@dachary.org>

	* tests/test-pokeravatar.py.in: fix https://gna.org/bugs/?11148
	  allows to discard the CORRECTEDtourneyRegister in favor of
	  tourneyRegister
	* pokernetwork/pokerservice.py: error + message functions convert
	  to string before concatenating. (fixes
	  https://gna.org/bugs/?11148).
	* pokernetwork/pokeravatar.py: listHands fixed to accomodate
	  SELECT_ALL packet specifics (fixes https://gna.org/bugs/?11149).
	  error + message functions convert to string before concatenating.

2008-02-24  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in (PokerAvatarTestCase.getPersonalInfo):
	Wrote function.
	(PokerAvatarTestCase.test24_personalInfo): Wrote function.
	(PokerAvatarTestCase.listHands): Wrote function.
	(PokerAvatarTestCase.test25_listHands): Wrote function.
	(PokerAvatarTestCase.test26_listTables): Wrote function.
	(PokerAvatarTestCase.listTables): Wrote function.
	(PokerAvatarTestCase.getPlayerInfoError): Wrote function.
	(PokerAvatarTestCase.test27_playerInfoNotLoggedIn): Wrote
	function.
	(PokerAvatarTestCase.normalSetRoles): Wrote function, pulling out
	and expanding sub function in test06_setRoles.
	(PokerAvatarTestCase.test06_setRoles): Rewrote to use
	normalSetRoles.
	(PokerAvatarTestCase.test06_7_setUnknownRole): Wrote function.
	(PokerAvatarTestCase.errorSetRoles): Wrote function.
	(PokerAvatarTestCase.test06_8_setRoleAfterAnotherUserHas): Wrote
	function.
	(PokerAvatarTestCase.setPersonalInfo): Wrote function.
	(PokerAvatarTestCase.test24_personalInfo): Added call to
	setPersonalInfo.
	(PokerAvatarTestCase.getPlayerInfoError): Corrected packet error
	type to search for.
	(PokerAvatarTestCase.setPokerPlayerInfo): Wrote function.
	(PokerAvatarTestCase.test28_setPokerPlayerInfo): Wrote function.
	(PokerAvatarTestCase.listHands): Fixed error OperationalError
	checking.
	(PokerAvatarTestCase.test29_errorSetPokerPlayerInfo): Wrote
	function.
	(PokerAvatarTestCase.errorSetPokerPlayerInfo): Wrote function.
	(PokerAvatarTestCase.setupCallbackChain): Wrote function.
	(PokerAvatarTestCase.sendExplainTooLate.checkError): Rewrote to
	not use packet queue.
	(PokerAvatarTestCase.test16_explainTooLate): Re-enabled test.
	(PokerAvatarTestCase.setPokerPlayerImage): Wrote function.
	(PokerAvatarTestCase.test30_setPlayerImage): Wrote function.
	(PokerAvatarTestCase.errorSetPokerPlayerImage): Wrote function.
	(PokerAvatarTestCase.test31_errorSetPlayerImage): Wrote function.
	(PokerAvatarTestCase.cashIn): Wrote function.
	(PokerAvatarTestCase.test32_cashIn): Wrote function.
	(PokerAvatarTestCase.cashQuery): Wrote function.
	(PokerAvatarTestCase.test33_cashQuery): Wrote function.
	(PokerAvatarTestCase.setPokerAccount): Wrote function.
	(PokerAvatarTestCase.test34_setPokerAccount): Wrote function.
	(PokerAvatarTestCase.cashIn): Rewrote to mock-up cashIn function
	in service.
	(PokerAvatarTestCase.checkCashIn): Wrote function.
	(PokerAvatarTestCase.test32_cashIn): Added call to checkCashIn.
	(PokerAvatarTestCase.test35_tourneys): Wrote function.
	(PokerAvatarTestCase.tourneySelect): Wrote function.
	(PokerAvatarTestCase.requestsWithWrongSerial): Added automuck
	packet.
	(PokerAvatarTestCase.cashOut): Wrote function.
	(PokerAvatarTestCase.checkCashOut): Wrote function.
	(PokerAvatarTestCase.test36_cashOut): Wrote function.
	(PokerAvatarTestCase.cashOutCommit): Wrote function.
	(PokerAvatarTestCase.checkCashOutCommit): Wrote function.
	(PokerAvatarTestCase.test37_cashOutCommit): Wrote function.
	(PokerAvatarTestCase.requestsWithWrongSerial): Added SET_ACCOUNT
	incorrect serial test.
	(PokerAvatarTestCase.tourneyPlayerList): Wrote function.
	(PokerAvatarTestCase.test38_tourneyPlayerList): Wrote function.
	(PokerAvatarTestCase.listPlayers): Wrote function.
	(PokerAvatarTestCase.test38_tablePlayerList): Wrote function.
	(PokerAvatarTestCase.test40_tourneyRegister): Wrote function.
	(PokerAvatarTestCase.tourneyRegister): Wrote function.
	(PokerAvatarTestCase.CORRECTEDtourneyRegister): Wrote function,
	should be used at tourneyRegister when https://gna.org/bugs/?11148
	is closed.
	(PokerAvatarTestCase.tourneyUnregister): Wrote function.
	(PokerAvatarTestCase.test41_tourneyUnregister): Wrote function.
	(PokerAvatarTestCase.test42_handSelectAll): Wrote function.
	(PokerAvatarTestCase.handSelectAll): Wroute function.
	(PokerAvatarTestCase.handHistory): Wrote function.
	(PokerAvatarTestCase.test43_handHistory): Wrote function.

2008-02-23  Bradley M. Kuhn  <bkuhn@ebb.org>.

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test21_sitOut): Wrote function.
	(PokerAvatarTestCase.sitOut): Wrote function.
	(PokerAvatarTestCase.sitOutClosedGame): Wrote function.
	(PokerAvatarTestCase.test22_sitOutClosedGame): Wrote function.
	(PokerAvatarTestCase.test23_quitPlayerInHand): Wrote function.
	(PokerAvatarTestCase): Wrote function.
	(PokerAvatarTestCase.saveClientObject): Wrote function.

2008-02-22  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test20_turningOffAutoBlind): Wrote function.
	(PokerAvatarTestCase.noAutoBlindAnte): Wrote function.

2008-02-21  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in: Set VERBOSE_T to 0 so that
	messages are not silenced.  test18 won't work otherwise.
	(PokerAvatarTestCase.badBuyIn): Wrote function.
	(PokerAvatarTestCase.test19_badBuyIn): Wrote function.
	(PokerAvatarTestCase.joinTable): Added name and structure as
	arguments.

2008-02-18  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.requestsWithWrongSerial): Various changes to
	make tests succeed.
	(PokerAvatarTestCase.test18_badAttempts): user must be logged in
	and seated for correct output to occur.

2008-02-18  Loic Dachary  <loic@pokerdev.pokersource.info>

	* pokernetwork/pokerclient.py: ERROR packets are no longer
	consumed by the pokerclient layer.

2008-02-18  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test18_badAttempts): Wrote function.
	(PokerAvatarTestCase.requestsWithWrongSerial): Wrote function.

2008-02-18  Loic Dachary  <loic@pokerdev.pokersource.info>

	* pokernetwork/pokerexplain.py: explain function returns True or False. Resulting packets are to be found, always, in explain.forward_packets. 

	* pokernetwork/pokeravatar.py: When used server side, the error
	packet is returned to the client instead of being discarded.

	* tests/test-pokerexplain.py.in: adapt to new return value

2008-02-18  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test99_testTinyFunctions): Wrote function.
	(PokerAvatarTestCase.tinyFunctions): Wrote function.
	(PokerAvatarTestCase.test16_explainTooLate): Wrote function.
	(PokerAvatarTestCase.pingThenUnprivRegisterTourney): Wrote function.
	(PokerAvatarTestCase.test17_pingAndUnpriv): Wrote function.

2008-02-17  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in (PokerAvatarTestCase.readyToPlay):
	Wrote function.
	(PokerAvatarTestCase.dealTable): Wrote function.
	(PokerAvatarTestCase.test15_handPlay): Wrote function.
	(PokerAvatarTestCase.joinTable): Added gameId as a parameter.
	(PokerAvatarTestCase.sitTable): Added gameId as a parameter.
	(PokerAvatarTestCase.autoBlindAnte): Wrote function.
	(PokerAvatarTestCase.sitTable): Renamed function to seatTable.
	(PokerAvatarTestCase.sitTable): Wrote a new function by this name.
	(PokerAvatarTestCase.beginHandSetup): Wrote function.
	(PokerAvatarTestCase.doBlindPost): Wrote function.
	(PokerAvatarTestCase.startHandAndReceiveCards): Wrote function.

2008-02-13  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test12_buyIntoGame): Wrote function.
	(PokerAvatarTestCase.buyInTable): Wrote function.
	(PokerAvatarTestCase.test13_stats): Wrote function.
	(PokerAvatarTestCase.statsQuery): Wrote function.

2008-02-12  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in (PokerAvatarTestCase.joinTable):
	Removed myGame variable; no longer needed.
	Changed currency_serial for Table2 to 0.

2008-02-11  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in (PokerAvatarTestCase.sitTable):
	Removed extraneous prints.
	(PokerAvatarTestCase.test10_explainFailsOnceAtTable): Wrote
	function.
	(PokerAvatarTestCase.forceExplain): Wrote function.
	(PokerAvatarTestCase.test11_loginWithPasswordTooLong): Wrote
	function.
	(PokerAvatarTestCase.loginWithPasswordTooLong): Wrote function.

2008-02-10  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test05_testStrInterpolation): Callback function
	should return (client, packet).
	(PokerAvatarTestCase.test07_getImage): Wrote function.
	(PokerAvatarTestCase.test06_5_setRolesIsAnErrorWhenDoneAfterLogin):
	Wrote function.
	(PokerAvatarTestCase.test06_setRoles): Roles must be set before login.
	(PokerAvatarTestCase.test06_setRoles.setRoles): should not
	try/catch error as test following it does.
	(PokerAvatarTestCase.test08_joinTable): Wrote function.
	(PokerAvatarTestCase.joinTable): Wrote helper function.
	(PokerAvatarTestCase.test09_sitTable): Wrote function.
	(PokerAvatarTestCase.sitTable): Wrote helper function.

2008-02-09  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokeravatar.py.in
	(PokerAvatarTestCase.test04_createTable): Wrote function.
	(PokerAvatarTestCase.test05_testStrInterpolation): Wrote funciton.
	(PokerAvatarTestCase.test04_createTable.handleTable): Wrote function.

	* pokernetwork/pokeravatar.py (PokerAvatar.__str__): Fixed bug;
	stringification shouldn't have a print in it.

2008-02-02  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerdatabase.py.in
	(PokerDatabaseTestCase.tearDown): Added code to delete the test user.
	(Run): Used VerboseTextReporter instead of regular TextReporter.
	(PokerDatabaseTestCase.test04_rootBothUsers): Added catch for
	exception when it attempts to recreate the root user.
	(PokerDatabaseTestCase.setUp): Added a tearDown() call just in
	case cruft is left around.
	(PokerDatabaseTestCase.test07_multipleRowsInVersionTable): Wrote function.
	(PokerDatabaseTestCase.test08_forceTestDatabaseTooOld): Wrote function.
	(PokerDatabaseTestCase.test09_forceTestPokerNetworkTooOld): Wrote function.
	(PokerDatabaseTestCase.test10_badUpgradeSqlFiles): Wrote function.
	(PokerDatabaseTestCase.test01_upgrade): Changed directory for
	upgrade scripts to .../good.

2008-02-01  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerdatabase.py.in: Fixed name test user to not be
	the same as the database.

2008-01-31  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerdatabase.py.in
	(PokerDatabaseTestCase.test05_missingRootUser): Wrote function.
	(PokerDatabaseTestCase.tearDown): Made separate try for each
	operation.
	(PokerDatabaseTestCase.test06_databaseAlreadyExists): Wrote function.

2008-01-29  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerdatabase.py.in
	(PokerDatabaseTestCase.test03_schemaFileMissing): Wrote function.
	(PokerDatabaseTestCase.test02_dbVersionTooOld): Fixed to restore
	original MySQL function when test is done.
	(PokerDatabaseTestCase.test04_rootBothUsers): Wrote function.
	(PokerDatabaseTestCase.test01_upgrade): Added assert for final
	version number.
	(PokerDatabaseTestCase.setUp): Added code to find version number
	by parsing file.

2008-01-28  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokerdatabase.py.in
	(PokerDatabaseTestCase.test02_dbVersionTooOld): Wrote function.
	(PokerDatabaseTestCase.setUp): Do not create self.db here, since
	sometimes we want it to be a dummy.
	(PokerDatabaseTestCase.tearDown): try/except around db close; it
	may never get created.
	(Run): Switch to VERBOSE_T == 4 to get maximum verbosity coverage.

2008-01-27  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokertable.py.in (MockService.saveHand): Added round5
	test.
	(MockService.loadHand): Added 'values' to the serials2chips dict.
	(MockService.saveHand): Fixed showdown test since we now have two
	showdowns.
	(PokerTableTestCase.test24_treeFallingInWoodsWithNoPlayerToHearIt):
	Wrote function.
	(PokerTableTestCaseTransient.test07_break_message.Tournament):
	Moved to Trainsient table area only.
	(PokerTableTestCaseWithPredefinedDecks): Renamed class to
	WithPredefinedDecksAndNoAutoDeal
	(PokerTableTestCaseWithPredefinedDecksAndNoAutoDeal.test01_autodeal):
	Derived function from superclass.
	(PokerTableTestCaseWithPredefinedDecksAndNoAutoDeal.test02_autodeal_check):
	Derived function from superclass.
	(PokerTableTestCaseWithPredefinedDecksAndNoAutoDeal.test12_everyone_timeout):
	Derived function from superclass.
	(PokerTableTestCaseWithPredefinedDecksAndNoAutoDeal.test16_autoMuckTimeoutPolicy):
	Derived function from superclass.
	(PokerTableTestCaseWithPredefinedDecksAndNoAutoDeal.test17_bogusTimeoutPolicy):
	Derived function from superclass.
	(PokerTableTestCase.test08_5_kick): Added use of fakeGameRemovePlayer.
	(PokerTableTestCase.test08_player_has_trouble_joining): Added test
	for player5 joining table 2.
	(MockClientBot): Created class.
	(MockClientBot.getName): Created function.
	(PokerTableTestCase.createBot): Wrote function.
	(PokerTableTestCase.test99_destroy_table): Added test for updating
	a destroyed table.
	(MockService.tableMoneyAndBet): Changed return value to force error.
	(PokerTableTestCase.test08_2_brokenSeatFactory): Fixed function to
	make sure player joined first.
	(PokerTableTestCase.test20_1_brokenLeaving): Wrote function.
	(PokerTableTestCase.test25_buyingInWhilePlaying): Wrote function.
	(PokerTableTestCase.test26_wrongPlayerUpdateTimes): Wrote function.
	(PokerTableTestCaseTransient.test27_buyinFailures): Wrote function.
	(PokerTableTestCaseWithPredefinedDecksAndNoAutoDeal.test27_buyinFailures):
	Wrote function.
	(PokerTableTestCase.test27_buyinFailures): Wrote function.
	(PokerTableTestCase.test01_7_autodealShutDown): Wrote function.

2008-01-26  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokertable.py.in
	(PokerTableTestCase.test23_broadcastingPlayerCards): Wrote function.
	(PokerTableTestCase.test22_possibleObserverLoggedIn): Modified to
	fully cover pokertable.possibleObserverLoggedIn
	(PokerTableTestCaseTransient.setUp): Made transient table tests a
	tourney one too.
	(PokerTableTestCase.test21_syncDatabase): Added a tourneyEndTurn
	call here as well.
	(MockService.tourneyEndTurn): Wrote function.
	Set verbose to 4 throughout.
	(MockService.loadHand): Forced return value to include the handId requested
	(MockService.updatePlayerMoney): Added additional values for new
	tests in the example hand.
	(PokerTableTestCase.test20_quitting): Added player 9 create/quit.
	(MockClient.removePlayer): removing Player 9 now always returns False.

2008-01-22  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokertable.py.in (MockService.updatePlayerMoney):
	Made actual tests in function.
	(MockService.updatePlayerRake): Made actual tests in function.
	(MockService.resetBet): Made actual tests in function.

2008-01-21  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokertable.py.in
	(PokerTableTestCase.test08_player_has_trouble_joining): Added test
	for two kick attempts in a row.
	(PokerTableTestCase.test13_disconnect): Wrote function.
	(PokerTableTestCase.test14_closed_games): Wrote function.
	(PokerTableTestCase.test08_5_kick): Wrote function.
	(PokerTableTestCase.test08_7_sitout): Wrote function.
	(PokerTableTestCase.createPlayer): Added clientClass option.
	(MockClientWithRemoveTable): Created class.
	(MockClientWithRemoveTable.removeTable): Wrote function.
	(MockClientWithTableDict): Created class.
	(MockClientWithTableDict.__init__): Wrote function.
	(MockClientWithTableDict.addPlayer): Wrote function.
	(MockService.destroyTable): Wrote function.
	(PokerTableTestCaseTransient): Created class for transient tests.
	(PokerTableTestCaseTransient.setUp): Wrote function, mostly
	cut-and-paste.
	(PokerTableTestCaseTransient.createPlayer): Wrote function, mostly
	cut-and-paste.
	(PokerTableTestCaseTransient): reorganized transient tests that
	had been in PokerTableTestCase.
	(PokerTableTestCase.test08_8_buyinOverMax): Wrote function.
	(MockService.getTable): Wrote function.
	(MockService.movePlayer): Wrote function.
	(MockClient.getPlayerInfo): Changed to return dictionary.
	(PokerTableTestCase.setUp): Added table2.
	(PokerTableTestCaseTransient.setUp): Added table2.
	(PokerTableTestCase.test15_moveTo): Wrote function.
	(PokerTableTestCase.test10_info_and_chat): Fixed to work with new
	playerInfo.
	(MockClient.getPlayerInfo.MockPlayerInfo): Created class.
	(MockClient.getPlayerInfo): Rewrote function to return an object
	rather than a string.
	(PokerTableTestCase.createPlayer): Added table as an argument.
	(PokerTableTestCaseTransient.createPlayer): Added table as an
	argument.
	(PokerTableTestCase.test15_moveTo): Added check for return
	packet's contents.
	(PokerTableTestCase.test16_autoMuckTimeoutPolicy): Wrote function.
	(PokerTableTestCase.test17_bogusTimeoutPolicy): Wrote function.
	(PokerTableTestCase.test16a_resetTimeoutPolicy): Wrote function.
	(MockService.loadHand): Wrote function.
	(MockClient.lookForPacket): Changed to return packet found.
	(PokerTableTestCase.test18_handReplay): Wrote function.
	(MockService.loadHand): Added extra rounds to cover board cache.
	(PokerTableTestCase.createPlayer): Don't join automatically unless
	getReadyToPlay set.
	(PokerTableTestCase.test08_player_has_trouble_joining): Added more
	sit/seat tests.
	(PokerTableTestCase.test08_2_brokenSeatFactory): Wrote function.
	(Run): set environment variable here
	(MockService.getPlayerInfo): Wrote function.
	(PokerTableTestCase.test19_serial2clientEmpty): Wrote function.
	(PokerTableTestCase.test18_handReplay): Added rake check.
	(PokerTableTestCase.test08_player_has_trouble_joining): Added
	isSerialObserver calls.
	(PokerTableTestCase.test20altForNewClientAPI_quitting): Wrote function.
	(MockService.saveHand): Wrote function.
	(MockService.updatePlayerMoney): Wrote function.
	(MockService.updatePlayerRake): Wrote function.
	(MockService.resetBet): Wrote function.
	(PokerTableTestCase.test21_syncDatabase): Wrote function.
	(convertHandHistoryToDict): Wrote function.

	* pokernetwork/pokertable.py (PokerTable.destroy): Added FIXME note.
	(PokerTable.destroyPlayer): Added FIXME note.

2008-01-20  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokertable.py.in (PokerTableTestCase.createPlayer):
	Created option so that you can create a MockClient without
	join/seat/buyIn of the player.
	(PokerTableTestCase.test08_player_has_trouble_joining): Created test.
	(MockClient.removePlayer): Wrote function.
	(MockService.leavePlayer): Wrote function.
	(MockService.sitPlayer): Wrote function.
	(MockClient.__str__): Wrote function.
	(MockService.getName): Wrote function.
	(MockClient.getName): name => Player
	(PokerTableTestCase.test09_list_players): Wrote function.
	(PokerTableTestCase.test10_destroy_table): Wrote function.
	(MockService.deleteTable): Wrote function.
	(PokerTableTestCase.test99_destroy_table): Renamed test10 to this.
	(MockClient.getPlayerInfo): Wrote function.
	(PokerTableTestCase.test10_info_and_chat): Wrote function.
	(MockClient.autoBlindAnte): Wrote function.
	(PokerTableTestCase.test11_packet): Wrote function.
	(MockClient.sitOutPlayer): Wrote function.
	(PokerTableTestCase.test12_everyone_timeout): Wrote function.

2008-01-19  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/test-pokertable.py.in (PokerTableTestCase.setUp): Added
	option to change the settings XML string. 
	(PokerTableTestCaseWithPredefinedDecks): Created class to test
	predefined decks.
	Added settings_stripped_deck_xml variable.

2008-01-14  Loic Dachary <loic@dachary.org>

	* tests/test-currencyclient.py.in: specify the test database so
	  that currency is not used by default
	* tests/test-currencyclient.py.in: use configure variables and
	  currencytest only
	* tests/Makefile.am: setupMysqlVariables is not a program
	* tests/Makefile.am: setupMysqlVariables must be in EXTRA_DIST
	* AUTHORS: Bradley in authors file
	* ChangeLog: move reversion up

2008-01-13  Bradley M. Kuhn  <bkuhn@ebb.org>

	* configure.ac: Added call to new macro, POKERNETWORK_AC_PROG_APG.

	* config/apg.m4: Created file.

	* debian/control (Build-Depends): Added apg, rsync.

	* tests/test-pokerbotlogic.py.in (NoteGeneratorTestCase.test_all):
	Used 'printf' instead of 'echo -e'.

	* tests/test-pokeravatar.py.in: Changed to use MYSQL_TEST_* variables.

	* tests/test-pokerclient.py.in: Changed to use MYSQL_TEST_* variables.

	* tests/test-currencyclient.py.in: Changed to use MYSQL_TEST_* variables.

	* tests/test-pokerservice.py.in: Changed to use MYSQL_TEST_* variables.

	* tests/test-webservice.py.in: Changed to use MYSQL_TEST_* variables.

	* tests/setupMysqlVariables: Changed variables to new MYSQL_TEST ones.

	* tests/Makefile.am: Changed variable exports related to databases
	to use the new test ones as below.

	* configure.ac (POKER_DBROOT_PASSWORD): Added variable.
	(MYSQL_TEST_DBHOST): Added variable.
	(POKER_DBROOT_PASSWORD): Added variable.

2008-01-12  Bradley M. Kuhn  <bkuhn@ebb.org>

	* tests/Makefile.am: exported various variables so subprocesses,
	such as the tests, can find them.

	* tests/run.in: Now loads setupMysqlVariables.
	(TZ): Checked to see if it is empty before setting.

	* tests/setupMysqlVariables: Created File.

2007-11-08  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerservice.py: serialization recurse on packets
	  member of PacketList instances
	* tests/test-webservice.py.in: test that PacketList derivatives are
	  serialized properly
	* pokerweb/pages/currency.php: get the mysql server port and host
	  from global variables
	* pokerweb/pages/cash_in.php: currency 1 is the default currency
	* conf/poker.server.xml.in: documentation of auto-cashin

2007-10-03  Loic Dachary  <loic@dachary.org>

	* conf/poker.bot.xml.in, conf/poker.client.xml.in,
	  conf/poker.server.xml.in, examples/poker.bot.xml,
	  examples/poker.server-monotone.xml, examples/poker.server.xml,
	  pokerclient2d/poker2d.xml.in: version bump to 1.3.0
	* tests/test-packets.py.in: packet name is in the tests results
	* pokernetwork/pokerbot.py: provide serial argument in tournament
	  bots too
	* tests/test-pokerclientpackets.py.in: packets up to 208 included
	  can be tested for backward compatibility, other packets are new
	  and need not be tested
	* pokernetwork/pokerbot.py: provide serial argument in tournament
	  bots too
	* pokernetwork/packets.py: print the symbolic name of the packet in
	  infoStr
	* pokernetwork/pokerclient.py: gameEvent moved to pokerexplain
	* pokernetwork/pokerclientpackets.py: Context: when all players are
	  all-in, the board cards will be
	  dealt automatically. The POKER_ALLIN_SHOWDOWN packet is created
	  as soon as such a situation is detected. The client can chose
	  to behave differently, for instance to postpone the display of
	  the board cards until after the muck phase of the game.
	* pokernetwork/pokerexplain.py: when all players are allin save
	  one, forge a ALLIN_SHOWDOWN packet
	* ChangeLog, NEWS, debian/changelog, pokernetwork/__init__.py:
	  version bump to 1.3.0

2007-09-24  Johan Euphrosine  <proppy@aminche.com>

	* debian/control.feisty: overwrite with control.gutsy

2007-09-14  Loic Dachary <loic@dachary.org>

	* Release 1.2.0

	* tests/test-servercrash.py.in, tests/test-webservice.py.in,
	  tests/testmessages.py: improve verbosity control
	* tests/test-pokerservice.py.in: create a base class for tests and
	  add a number of tests mainly designed to cover all code
	  containing messages
	* tests/test-pokeravatar.py.in, tests/test-pokerchildren.py.in,
	  tests/test-pokerclient.py.in,
	  tests/test-pokerclientpackets.py.in,
	  tests/test-pokerexplain.py.in: improve verbosity control
	* pokernetwork/pokerservice.py: improve verbosity control
	  remove dead code
	* pokernetwork/pokerdatabase.py: improve verbosity control
	* debian/control, debian/control.breezy, debian/control.dapper,
	  debian/control.edgy, debian/control.etch, debian/control.feisty,
	  debian/control.gutsy, debian/control.hoary, debian/control.lenny,
	  debian/control.sarge, debian/control.unstable: get rid of
	  obsolete distributions and add ttf-freefont

2007-09-14  Johan Euphrosine  <proppy@aminche.com>

	* tests/test-gamewindow.py.in:
	Fixed outdated test-gamewindow.py.in: GameWindowGlade(glade_instance)
	* debian/control.gutsy (Pre-Depends): 
	Depends->Pre-Depends: dbconfig-common

2007-09-07  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/pokerdisplay2d.py: 
	* pokerclient2d/gamewindow.py: 
	Fix SIGV at startup (LP #137573), by calling signalautoconnect on
	the glade tree before modifications.

2007-08-08  Loic Dachary <loic@dachary.org>

	* debian/python-poker-network.postinst,
	  debian/python-poker-network.postrm: initialize munin plugins
	* pokernetwork/munin/Makefile, pokernetwork/munin/Makefile.in:
	  commited by mistake
	* pokernetwork/munin/test_poker_hands_,
	  pokernetwork/munin/test_poker_players_,
	  pokernetwork/munin/test_poker_traffic_: use srcdir to find the
	  scripts
	* pokernetwork/munin/Makefile.am: tests are found in srcdir
	* pokernetwork/munin/Makefile.am: tests are distributed for munin
	* pokernetwork/munin/Makefile.am: scripts are in the distribution
	* debian/python-poker-network.install: install munin plugin
	* debian/control, debian/control.dapper, debian/control.edgy,
	  debian/control.etch, debian/control.feisty, debian/control.gutsy,
	  debian/control.lenny, debian/control.unstable: perl JSON is
	  required for munin plugin
	* configure.ac: munin plugin directory has its own standalone
	  makefile with tests included
	* Makefile.am: recurse into munin plugins
	* pokernetwork/munin/Makefile.am: munin scripts
	* pokernetwork/munin, pokernetwork/munin/Makefile,
	  pokernetwork/munin/Makefile.am, pokernetwork/munin/Makefile.in,
	  pokernetwork/munin/poker_hands_,
	  pokernetwork/munin/poker_players_,
	  pokernetwork/munin/poker_traffic_,
	  pokernetwork/munin/test_config.dat,
	  pokernetwork/munin/test_poker_hands_,
	  pokernetwork/munin/test_poker_players_,
	  pokernetwork/munin/test_poker_traffic_,
	  pokernetwork/munin/test_wget1: munin plugins
	* tests/test-webservice.py.in: test REST web service
	  test PacketPokerStat service
	* tests/test-clientserver.py.in, tests/test-currencyclient.py.in,
	  tests/test-gamewindow.py.in, tests/test-poker2d.py.in,
	  tests/test-pokeravatar.py.in, tests/test-pokerbotlogic.py.in,
	  tests/test-pokercashier.py.in, tests/test-pokerchildren.py.in,
	  tests/test-pokerclient.py.in, tests/test-pokerdatabase.py.in,
	  tests/test-pokerdisplay2d.py.in, tests/test-pokerexplain.py.in,
	  tests/test-pokergameclient.py.in,
	  tests/test-pokerinteractor.py.in,
	  tests/test-pokerinterface.py.in, tests/test-pokerlock.py.in,
	  tests/test-pokernetworkconfig.py.in,
	  tests/test-pokerrenderer.py.in, tests/test-pokerservice.py.in,
	  tests/test-pokertable.py.in, tests/test-protocol.py.in,
	  tests/test-pygame.py.in, tests/test-quit.py.in,
	  tests/test-servercrash.py.in, tests/test-string.py.in,
	  tests/test-svg2gtk.py.in, tests/test-upgrade.py.in,
	  tests/testpackets.py, tests/testwebservice.php.in,
	  tests/upgrade.in: control verbosity by the use of testmessages
	* pokernetwork/pokeravatar.py: implement PacketPokerStatsQuery
	  packet
	* pokernetwork/client.py: use dataWrite function instead of
	  transport.write
	* tests/testmessages.py: add testmessages utility for all tests to
	  control their verbosity
	* tests/Makefile.am: replace test-xmlrpc with test-webservice
	  add testmessages utility for all tests to control their verbosity
	* pokernetwork/server.py: use dataWrite function instead of
	  transport.write
	* pokernetwork/protocol.py: collect data in/out statistics
	* pokernetwork/pokertable.py: use message / error function instead
	  of print
	* pokernetwork/pokerservice.py: implement rest interface at /REST
	  use message / error methods for printing
	  implement stats function for monitoring
	* pokernetwork/pokerpackets.py: stats query and answer
	* pokernetwork/pokerdatabase.py: use message / error function
	  instead of print
	* pokernetwork/pokeravatar.py: use message / error function instead
	  of print
	* configure.ac: Rename xmlrpc to webservice

2007-08-07  Loic Dachary <loic@dachary.org>

	* tests/test-webservice.py.in, tests/test-xmlrpc.py.in: Rename
	  xmlrpc to webservice

2007-08-03  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerbotlogic.py: look for a specific table to
	  reduce the bootstrap latency
	* Makefile.am, examples/stress, examples/stress/poker.bot.xml,
	  examples/stress/poker.bot100.xml,
	  examples/stress/poker.bot200.xml,
	  examples/stress/poker.bot300.xml,
	  examples/stress/poker.bot400.xml,
	  examples/stress/poker.bot500.xml,
	  examples/stress/poker.bot600.xml,
	  examples/stress/poker.bot700.xml,
	  examples/stress/poker.bot800.xml,
	  examples/stress/poker.bot900.xml,
	  examples/stress/poker.server.xml: Stress test data files.
	* tests/test-pokerservice.py.in: Test auto_create_account is set to
	  no and failure to login.
	* pokernetwork/pokerservice.py: For test purposes only, implement
	  an auto cash in feature when the account is created as a side
	  effect of login attempt with a non existent password.
	  If auto_create_account is set to no, disable auto creation of
	  accounts when the user tries to login.
	* pokernetwork/pokerlock.py: Thread queue size is display when
	  looping.
	* pokernetwork/pokerclient.py: Message is controled by verbosity.
	* pokernetwork/pokercashier.py: Display the cashier SQL orders.
	* pokernetwork/pokerbotlogic.py: The bot will only login after
	  serial/10 seconds. This is to avoid a connection flood when
	  thousands of bots are launched against a single server.
	  The bot will only cash in if the cash_in option is set. The poker
	  server may be launched in auto cashin mode for test purposes in
	  which case there is no need for the cash in phase.
	* pokernetwork/pokerbot.py: Each bot is given a serial number
	  ranging from 1 to the total number of bots.
	  Parse the cash_in option that will be used by the bot logic.
	* pokernetwork/pokeravatar.py: Remove spurious messages.

2007-08-02  Loic Dachary <loic@dachary.org>

	* pokernetwork/__init__.py: Protocol changed because of packetlist.
	* tests/test-pokerlock.py.in: Be silent by default by replacing the
	  message functions so that coverage of the code is not compromised
	  by a change of verbosity level.
	  Stress test that acquires 500 locks, once every 1/100 sec.
	* tests/test-packets.py.in: Adapt the packetlist tests to take in
	  account the change from B to !H.
	* pokernetwork/pokerserver.py: Change the import order so that the
	  poll reactor is used when possible.
	* pokernetwork/pokerlock.py: All messages go thru the message
	  function.
	  The sleep time is reduced to 1/10 seconds to speed up cashin when
	  a large number of players try to cashin at the same time.
	  Additional messages when the thread is stopped.
	  Print the stack trace when an exception occurs while evaluating
	  the callbacks.
	* pokernetwork/pokerbotlogic.py: Fix the action selection logic
	  when the bots are asked to take random actions. Fold is not an
	  option and a fake -1 evaluation result is returned.
	* pokernetwork/pokerbot.py: The poker bot uses the poll reactor to
	  deal with more than 1024 open file descriptors.
	* pokernetwork/packets.py: The packet list can hold more than 255
	  packets.
	* examples/run-pokerserver: The second argument may be the name of
	  the poker bot configuration file.
	  Sleep a number of seconds proportional to the size of the server
	  configuration file to give it a chance to fully initialize before
	  launching the bogs.

2007-08-01  Loic Dachary <loic@dachary.org>

	* conf/poker.bot.xml.in, conf/poker.client.xml.in,
	  conf/poker.server.xml.in, examples/poker.bot.xml,
	  examples/poker.server-monotone.xml, examples/poker.server.xml,
	  pokerclient2d/poker2d.xml.in, tests/conf/poker.client.xml.in:
	  version bump
	* debian/changelog: bump version
	* pokernetwork/__init__.py: bump version
	* NEWS: bump version
	* tests/test-poker2d.py.in: test avoid double init
	* pokerclient2d/poker2d.py: avoid double init display
	* tests/Makefile.am: remove pyc files
	* tests/test-poker2d.py.in: test avoid double init
	* pokerclient2d/poker2d.py: avoid double init display
	* tests/Makefile.am: remove pyc files

2007-07-24  Loic Dachary  <loic@dachary.org>

	* config/ccpython.m4: cygwin hack is no longer necessary: it does
	  not work anyways ("bar tomas" <bartomas@gmail.com> did the testing)

2007-07-11  Loic Dachary <loic@dachary.org>

	* Release 1.1.1

	* pokernetwork/__init__.py: version bump
	* pokernetwork/pokerclientpackets.py: state in display node is an
	  int
	* ChangeLog, NEWS, debian/changelog: version bump

2007-06-30  Johan Euphrosine  <proppy@aminche.com>

	* Release 1.1.0

	* pokerweb/pages/tilt.html: Added tilt.html page dedicated to client
	  crash
	
2007-06-28  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerbot.py: Extract rebuy & currency parameter from
	  settings file.
	* pokernetwork/pokerbotlogic.py: Use id from configuration file
	  when asking for a note to the currency server.
	* conf/poker.bot.xml.in: Default is to use id 1.
	* conf/poker.bot.xml: Remove wrongly added file.
	* conf/poker.bot.xml.in: Default rebuy=yes and sample setting with
	  id.
	* conf/poker.bot.xml: Sample id setting.
	* conf/poker.bot.xml: default is to rebuy
	* pokerweb/pages/tests/test-currencies.html: Test multiple
	  currencies.
	* pokerweb/pages/tests/TestSuite.html: Test multiple currencies.
	* pokerweb/pages/poker.php: Build the URL from the currency id if
	  present.
	* pokerweb/pages/cash_in.php, pokerweb/pages/cash_out.php: Enter
	  currency for cash in and cash out.
	* examples/poker.server.xml: Default is to allow currency creation
	  by the user, for backward compatibility.
	* conf/poker.server.xml.in: Default is to allow currency creation
	  by the user, for backward compatibility.

2007-06-27  Loic Dachary <loic@dachary.org>

	* pokernetwork/currencyclient.py: Allow for a ? in the URL,
	  transparently.
	* tests/test-currencyclient.py.in: Check with ? in the url or not.
	* pokernetwork/pokerdatabase.py: use port parameter when available,
	  otherwise fallback to 3306
	* conf/poker.server.xml.in: port number added to database parameter
	  element.

2007-06-26  Loic Dachary <loic@dachary.org>

	* tests/testpackets.py: base tests common to all test-*packet*.in
	* tests/test-pokerclientpackets.py.in: testpackets base class for
	  packets and pokerpackets
	* tests/Makefile.am: testpackets base class for packets and
	  pokerpackets
	* pokernetwork/pokerclientpackets.py: All packets are not
	  infoDeclare because infoHybrid is obsolete.
	* debian/poker-web.preinst: install xdebug rc4
	* configure.ac: test-actionscript.py sample decode code generator
	  based on the packet info field
	* conf/poker.server.xml.in: default user_create is no
	* pokernetwork/packets.py: In packets, always set the length field.
	  Define the new types Bnone (255 == None), cbool ('y', 'n'), pl
	  (packet list).
	  Obsolete the Hybrid declaration function.
	  Pack the integers in network order for Il.
	  Set the info field for all packets.
	* tests/test-packets.py.in: Be more verbose by default to improve
	  error report readability.
	  The type field must be a field of the packet in the mockup
	  packets.
	  Define the info field for all test packets because the rule is
	  now to have an info field for all defined packets.
	  Test values for the new types, pl, bool, cbool and Bnone.
	  Kill infoHybrid test because the method is now obsolete.
	  Test unpackpackets error conditions.
	* tests/test-pokerpackets.py.in: Use the testpackets class as a
	  base common to test-packets.py.in
	  Test the infoPack / infoUnpack functions for functions dedicated
	  to poluting some specific packets (player, money).
	* pokernetwork/pokerpackets.py: Define the info attribute for each
	  packet.
	  Add format_info players for PacketPokerPlayersList
	  Add format_info money for PacketPokerUserInfo
	  replace infoHybrid with infoDeclare
	  Change the money list length in PacketPokerUserInfo to be
	  immediately before the money list instead of in the middle of the
	  packet

2007-06-23  Loic Dachary <loic@dachary.org>

	* tests/test-actionscript.py.in: ActionScript code generator.

2007-06-22  Loic Dachary <loic@dachary.org>

	* pokerweb/pages/currency.php: Skip the transactions table when
	  building the value2table map.

2007-06-21  Loic Dachary <loic@dachary.org>

	* pokerweb/pages/currency.php: Mutliple currencies support within
	  the same database.
	* tests/testcurrency.php.in: mutliple currencies tests

2007-06-20  Loic Dachary <loic@dachary.org>

	* tests/testcurrency.php.in: test16_db_check_selected
	* pokerweb/pages/currency.php: remove the non working _[0-9]% like
	  pattern
	  remove useless setters
	  re-arrange no-coverable code
	* tests/testcurrency.php.in: function test1?_db_check_selected and
	  don't use exception extension because hand made code is more
	  convenient.
	* pokerweb/pages/currency.php: Reset file descriptors after the
	  destructor is called so that it does not harm to call it more
	  than once.
	* tests/testcurrency.php.in: test09_randname
	* tests/testcurrency.php.in: Introduce exceptions to currency tests
	  and define test09_mysql_extension.
	* pokerweb/pages/currency.php: Tests for autoload of mysql
	  extension.

2007-06-19  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerclientpackets.py, pokernetwork/pokerpackets.py:
	  Hybrid packets that only change the type of the packet must set
	  info to ()
	* pokernetwork/pokerpackets.py: Add documentation about the packets
	  returned by PacketPokerExplain.

2007-06-18  Loic Dachary <loic@dachary.org>

	* debian/control.sarge: no python version number in the
	  python-simplejson backport
	* debian/control.dapper: no python version number in the
	  python-simplejson backport
	* debian/control.dapper: no python version number in the
	  python-simplejson backport

2007-06-15  Loic Dachary <loic@dachary.org>

	* tests/test-pokerservice.py.in: Auto create currencies in tests.
	* tests/test-pokerclient.py.in, tests/test-xmlrpc.py.in: Auto
	  create currencies in tests.
	* pokernetwork/pokercashier.py: currency creation is no longer
	  capped to 2 : it depends on the user_create attribute of the
	  cashier element of the settings file
	* tests/test-pokercashier.py.in: test currency creation failure

2007-06-14  Loic Dachary <loic@dachary.org>

	* config/ccpython.m4: All interpreters in PYTHON variable.
	* configure.ac: Backtrack to another python interpreter if some
	  dependencies fail for a given python interpreter. This comes
	  handy for python2.5 that currently has a broken gtk + openssl
	  package in Debian unstable.
	* tests/test-pokerclientpackets.py.in: test JSON encoding of
	  PokerCards and PokerChips
	* tests/test-packets.py.in: test overriding JSON decoding method
	* configure.ac, tests/testicurrency.php.in: testicurrency.php.in is
	  a useless duplicate : remove
	* tests/Makefile.am: Remove useless testicurrency
	* pokernetwork/pokerservice.py: Update copyright.
	* pokernetwork/pokerpackets.py: Add ping and table_move use cases.
	* pokernetwork/pokerclientpackets.py: Add json support to showdown
	  packet.
	* debian/control, debian/control.breezy, debian/control.dapper,
	  debian/control.edgy, debian/control.etch, debian/control.feisty,
	  debian/control.gutsy, debian/control.hoary, debian/control.lenny,
	  debian/control.sarge, debian/control.unstable: Add dependency to
	  python-simplejson.
	  Add support for gutsy and lenny.
	* pokernetwork/packets.py: JSON serialization uses a single class
	* pokernetwork/packets.py: Support for serializing complex python
	  structures using the simplejson library.
	* tests/test-packets.py.in: Avoid random factor in json test by not
	  using multiple hash entries that may be serialized in a different
	  order depending on the exact hash function used by the python
	  interpreter.
	* tests/test-packets.py.in: test json packing

2007-06-06  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: PacketPokerPlayersList and
	  PacketPokerTourneyRequestPlayersList documentation
	* pokernetwork/packets.py: Add the LOGGED class attribute to
	  PACKET_LOGIN
	* tests/test-pokeravatar.py.in: Test multiple LOGIN packets
	  safeguard.
	* pokernetwork/pokeravatar.py: Guard against multiple LOGIN
	  packets.
	* pokernetwork/pokerpackets.py: CashIn logic documentation

2007-06-03  Loic Dachary <loic@dachary.org>

	* tests/run.in: Tag before actually running the tests.
	* pokernetwork/pokerpackets.py: Convert PokerExplain to infoHybrid.
	* pokernetwork/pokerexplain.py: Remove unused fields. Send kwargs
	  to PokerExplain.
	* pokernetwork/pokeravatar.py: Obey EXPLAIN packet.
	* configure.ac: test-pokeravatar.py.in
	* tests/Makefile.am: test-pokeravatar.py.in
	* pokernetwork/pokerclientpackets.py: infoDeclare implies
	  Packet.info in the info field
	* tests/test-pokeravatar.py.in: pokeravatar tests with the
	  introduction of a test for the explain method
	* tests/run.in: print running start
	* tests/test-packets.py.in: Set type to 10 and test in binary.
	* tests/test-pokerpackets.py.in: Executable fails if test fail.
	* tests/test-pokerclientpackets.py.in: Test backward compatibility.
	  Test the 'c' Packet.info type specific to client packets.
	* tests/test-packets.py.in: Test the info* methods of Packets.
	* pokernetwork/pokerpackets.py: Avoid long / int flip flop when
	  unpacking.
	* pokernetwork/pokerclientpackets.py: All packets are generated
	  based on the info class field content (see packet.py for more
	  information).
	* pokernetwork/packets.py: Add packet class generation facilities.
	  infoHybrid and infoDeclare patch a class declaration.
	  unbound methods of Packet are made static.
	  set of info* methods to support Packet functionalites (pack,
	  unpack etc.) based on the content of the info field.
	  Documentation and samples for the info class field.
	* Makefile.am: OLDpacketpokerclient is shipped to allow tests
	  ensuring backward compatibility
	* pokernetwork/OLDpokerclientpackets.py: harmless inconsistency fix
	  on POKER_PLAYER_ME_LOOK_CARDS
	* pokernetwork/OLDpokerclientpackets.py: harmless inconsistency fix
	  on POKER_INTERFACE_COMMAND
	* pokernetwork/OLDpokerclientpackets.py: harmless inconsistency fix
	  on POKER_PLAYER_ANIMATION_DEALER_BUTTON
	* pokernetwork/OLDpokerclientpackets.py: harmless inconsistency fix
	  on POKER_PLAYER_ANIMATION_DEALER_BUTTON
	* pokernetwork/OLDpokerclientpackets.py: harmless inconsistency fix
	  on POKER_PLAYER_ANIMATION_DEALER_CHANGE
	* pokernetwork/OLDpokerclientpackets.py: harmless inconsistency fix
	  on POKER_PLAYER_ANIMATION_DEALER_CHANGE
	* pokernetwork/OLDpokerclientpackets.py: PACKET_POKER_DISPLAY_NODE
	  must set default game_id to 0
	* pokernetwork/OLDpokerclientpackets.py: harmless inconsistency fix
	  on POKER_ANIMATION_PLAYER_CHIPS
	* pokernetwork/OLDpokerclientpackets.py: harmless inconsistency fix
	  on POKER_ANIMATION_PLAYER_BET
	* pokernetwork/OLDpokerclientpackets.py: Keep the former
	  pokerclientpacket implementation for backward compatibility
	  tests.

2007-06-01  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: Update context for
	  PacketPokerCashIn
	* pokernetwork/pokerpackets.py: CASH_IN direction
	* pokernetwork/pokerpackets.py: PacketPokerCashIn documentation

2007-05-31  Loic Dachary <loic@dachary.org>

	* tests/test-packets.py.in: Import packets instead of import *.
	* pokernetwork/pokerservice.py: Print wrapped around verbose.
	* pokernetwork/packets.py, pokernetwork/pokerclientpackets.py,
	  pokernetwork/pokerpackets.py: Use kwargs.get instead of if.
	  Define _TYPES to hold the packet types range.
	  Use maxint instead of -1 where appropriate.
	* configure.ac, tests/Makefile.am, tests/run.in: Add packet files
	  coverage tests.
	* tests/test-pokerclientpackets.py.in: pokerclientpackets tests
	  complete
	* tests/test-pokerpackets.py.in: generative tests of
	  pokerpackets.py.in
	* tests/test-packets.py.in: 100% coverage of packets.py
	* pokernetwork/pokerpackets.py: Loosely describe the workflow as
	  ordered set of packets involved in a given situation.

2007-05-30  Loic Dachary <loic@dachary.org>

	* tests/conf/poker.client.xml.in: bump to 1.1.0
	* tests/test-pokernetworkconfig.py.in: Use copyfile instead of copy
	  to NOT copy the permissions.
	* tests/test-pokernetworkconfig.py.in: Use local copy for
	  read-write access.
	* tests/test-pokernetworkconfig.py.in: 100% coverage on
	  pokernetworkonfig.

2007-05-30  Johan Euphrosine  <proppy@aminche.com>
	
	* tests/test-pokerservice.py.in (PokerXMLTestCase.test_packets2maps): 
	added PokerXml.packets2maps testcase
	* pokernetwork/pokerservice.py (PokerXML.packets2maps): 
	fixed message field serialization
	* tests/testwebservice.php.in: 
	* pokerweb/pages/webservice.php: 
	added JSON webservice

2007-05-29  Loic Dachary <loic@dachary.org>

	* tests/Makefile.am: add test-pokerbotlogic.py
	* pokerui/pokeranimation.py: Copyright dates.
	* pokerui/pokeranimation.py: Use seconds from twisted instead of
	  time.
	* pokernetwork/pokerbotlogic.py: Pool base class for note generator
	  and string generator that does not loop on error.
	* pokernetwork/pokerbot.py: Move logic to
	  pokernetwork/pokerbotlogic.py
	* pokernetwork/pokerbot.in: Update copyright info.
	* pokerclient2d/poker2d-test.xml: bump to version 1.1.0
	* pokerclient2d/client.xml: bump to version 1.1.0
	* configure.ac: add test-pokerbotlogic.py
	* Makefile.am: Add pokerbotlogic.py
	* examples/test-pokerweb: Force currency url to localhost
	* pokernetwork/packets.py, pokernetwork/pokerclientpackets.py,
	  pokernetwork/pokerpackets.py: Remove *args in __init__ calls when
	  redundant.
	* pokernetwork/packets.py: PacketError should call
	  Exception.__init__
	* tests/test-pokerbotlogic.py.in: NoteGeneratorTestCase
	* tests/test-pokerbotlogic.py.in: StringGeneratorTestCase
	* tests/run.in: only test 100% test coverage if file is said to be
	  taken in account
	* pokernetwork/pokerbotlogic.py: Separate the bot logic from the
	  bot service part
	* pokerweb/pages/index.php: Contribution dates.
	* pokerweb/pages/login.php: Login instead of Log in because it
	  breaks regression tests

2007-05-28  Loic Dachary <loic@dachary.org>

	* pokernetwork/packets.py: comment about cookie not being used
	* pokernetwork/packets.py: PacketSerial documentation
	* pokernetwork/packets.py: PacketAuthOk documentation
	* pokernetwork/packets.py: PacketAuthRefused documentation
	* pokernetwork/packets.py: PacketLogin documentation

2007-05-27  Loic Dachary <loic@dachary.org>

	* tests/test-pokergameclient.py.in: pokergameclient.py tests
	* tests/run.in: list all files that have 100% code coverage
	* tests/poker.server.xml: Forget python2.3 compatiblity
	* tests/poker-engine, tests/poker-engine/poker.1-2-no-limit.xml,
	  tests/poker-engine/poker.holdem.xml: pokerexplain tesst support
	  poker-engine configuration files
	* tests/Makefile.am: add pokerexplain and pokergameclient files and
	  copies of poker-engine configuration files so that it does not
	  depend on the installed poker-engine exact location
	* pokernetwork/pokerpackets.py: POKER_EXPLAIN packet allows the
	  client to control the verbosity level
	* pokernetwork/pokerexplain.py: Prefix must be forwarded by the
	  games container.
	* pokernetwork/pokerclient.py: Delegate packets expansion to
	  pokerexplain
	* pokernetwork/pokerbot.py: use the new setPrefix method of the
	  base class instead of setting _prefix directly
	* tests/run.in: list files that are expected to have 100% code
	  coverage and fail if they dont
	* configure.ac: add pokerexplain and pokergameclient test files
	* Makefile.am: add pokerexplain and pokergameclient files
	* pokernetwork/pokergameclient.py: PokerNetworkGameClient
	  derivation of the poker game client class for poker-network that
	  was previously embedded in pokerclient.py
	* pokernetwork/pokerexplain.py: extracted from pokerclient.py :
	  translate poker server packets into packets suitable for a
	  display that knows nothing about the poker rules

2007-05-26  Loic Dachary <loic@dachary.org>

	* tests/test-pokerexplain.py.in: test40_explain_position
	* tests/test-pokerexplain.py.in: test39_explain_win
	* tests/test-pokerexplain.py.in: test38_explain_player_chips
	* tests/test-pokerexplain.py.in: test37_explain_rebuy
	* tests/test-pokerexplain.py.in: test36_explain_timeout
	* tests/test-pokerexplain.py.in: test34_explain_in_game
	* tests/test-pokerexplain.py.in: test33_explain_state_end
	* tests/test-pokerexplain.py.in: test32_explain_state_flop
	* tests/test-pokerexplain.py.in: test31_explain_game_action
	* tests/test-pokerexplain.py.in: test30_explain_setters

2007-05-25  Loic Dachary <loic@dachary.org>

	* tests/test-pokerexplain.py.in: test30_explain_seats
	* tests/test-pokerexplain.py.in: test28_explain_player_self
	* tests/test-pokerexplain.py.in: test27_explain_player_leave
	* tests/test-pokerexplain.py.in: test26_explain_player_arrive
	* tests/test-pokerexplain.py.in: control messages verbosity
	* tests/test-pokerexplain.py.in: test24_explain_start
	* pokernetwork/pokerclientpackets.py, pokernetwork/pokerpackets.py:
	  Add hex version of the packet number to help debugging.
	* tests/test-pokerexplain.py.in: test20_explain_poker_table
	  test21_explain_serial
	  test22_explain_error
	* tests/test-pokerexplain.py.in: test19_packetsTableQuit
	* tests/test-pokerexplain.py.in: test18_packetsShowdown
	* tests/test-pokerexplain.py.in: test17_packetPot2Player

2007-05-24  Loic Dachary <loic@dachary.org>

	* tests/test-pokerexplain.py.in: test15_updateBetLimit
	* tests/test-pokerexplain.py.in: test14_moveBet2Pot
	* tests/test-pokerexplain.py.in: 27% of pokerexplain.py coverage
	* pokernetwork/pokerpackets.py: Direction consistency
	* pokernetwork/pokerpackets.py: PacketPokerTourneyUnregister
	  documentation
	* pokernetwork/pokerpackets.py: PacketPokerTourneyRegister
	  documentation
	* pokernetwork/pokerpackets.py: PacketPokerTourneySelect
	  documentation.

2007-05-23  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: Document PacketPokerChat packet.
	* pokernetwork/pokerpackets.py: PacketPokerGetPlayerInfo
	  documentation

2007-05-20  Loic Dachary <loic@dachary.org>

	* debian/python-poker-network.postrm: Test debconf before using it.
	* debian/poker-web.preinst: Test debconf before using it. Don't
	  bark when db_stop fails.
	* debian/poker-web.postrm: Test debconf before using it.
	* debian/po/cs.po: Updated czeck translation.
	* debian/control: Depends on python-gtk2-dev.
	* debian/changelog: Accept NMU from Luk Claes <luk@debian.org>.
	* debian/po/de.po: German translation

2007-05-18  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerpackets.py: PacketPokerTableJoin and
	  PacketPokerTable packet description updates.

2007-05-16  Loic Dachary <loic@dachary.org>

	* ChangeLog, NEWS, debian/changelog: Increase minor number and
	  leave micro number for maintainance.
	* ChangeLog, NEWS, debian/changelog: Version bump.

2007-05-13  Loic Dachary <loic@dachary.org>

	* Release 1.0.37

	* debian/changelog: Add portugese translation.
	* config/ccpython.m4: python2.5 support in dependencies is not
	  mature yet

2007-05-12  Loic Dachary <loic@dachary.org>

	* debian/po/pt.po: Add portugese translation.

2007-05-09  Loic Dachary <loic@dachary.org>

	* pokernetwork/pokerdatabase.py: add a second CREATE USER statement
	  to pokerdatabase.py for Host='localhost'.
	  closes https://gna.org/support/?1457
	* debian/po/nl.po: Dutch translation.

2007-05-07  Johan Euphrosine  <proppy@aminche.com>

	* pokerweb/pages/: Internationalization of poker-web strings
	* debian/control: Add gettext to poker-web dependencies

2007-05-05  Loic Dachary <loic@dachary.org>

	* upgrades/poker.bot/1.0.31-1.0.32.xsl: Replace /bot with /settings

2007-04-28  Loic Dachary <loic@dachary.org>

	* tests/test-pokerservice.py.in: Deal hands after resuming the
	  tourney.
	* pokernetwork/pokerservice.py: Deal hands after resuming the
	  tourney.
	* AUTHORS: Add missing authors jerome and update dates.
	* pokernetwork/pokerservice.py: Convert delay parameter to int.

2007-04-27  Loic Dachary  <loic@dachary.org>

	* tests/Makefile.am: Add testclock.py and __init__.py to the
	  distribution.
	* tests/__init__.py: Needed to load the controled clock module.
	* tests/testclock.py: Controled clock for testing purposes.
	* tests/test-pokertable.py.in: new test07_break_message that covers
	  the PokerTable code related to
	  sending a message while in the BREAK_WAIT state
	* tests/test-pokerservice.py.in: Use the test clock control.
	  
	  Create a base test class (PokerServiceTestCaseBase) that setup
	  the
	  environment for pokerservices test cases.
	  
	  Change the timeout values for some tests to adapt to the
	  controled clock.
	  
	  The test06_updatePlayerRake is transformed into a standalone test
	  UpdatePlayerRakeTestCase.
	  
	  new TimerTestCase that tests pokerservice.cancelTimers method
	  new BreakTestCase that tests all pokerservice tournament breaks
	  related methods
	* tests/test-pokerclient.py.in: Move the clock control code to
	  testclock.py file.
	  
	  Adjust the timeout of some tests. This is needed because the
	  artificial clocks goes faster than the real clock. Controling the
	  clock is not an exact science because 1) threads are used for
	  pokerlock and when the threads wake up they change the number of
	  loops
	  of the twisted reactor, 2) the number of loop depends on the
	  precise
	  twisted implementation and would therefore not be exactly the
	  same
	  with twisted 1.3 or twisted 2.4. However, once the number of
	  iteration
	  has been bounded for the existing twisted implementations, there
	  is
	  very little chance that it will greatly change.
	* pokerui/pokerrenderer.py: Show PACKET_POKER_GAME_MESSAGE in the
	  same way as PACKET_POKER_MESSAGE.
	* pokernetwork/pokertable.py: Create a dedicated function for the
	  broadcasting of messages to clients. Messages
	  are of two flavors (controled by the message type argument) and
	  are only sent to
	  connected clients, chosen after the list of serials given in
	  arguments, if any.
	  
	  Use the new message broadcast function in autodealCheck.
	  
	  Modify the autodeal function to handle the case of tournament
	  breaks in a special
	  way. If autodeal is attempted while the tournament is not running
	  and that the tournament
	  is waiting for some tables to finish their hand, notify all the
	  players.
	* pokernetwork/pokerservice.py: PokerService constructor accepts a
	  string instead of a Config object. The
	  string is converted into a Config object. For testing purposes.
	  
	  cancelTimers functions that removes all timers with a name
	  containing the
	  string argument, for use by tournament break timers when shutting
	  down the
	  server.
	  
	  tourneyNewState method handles tournament break specific states
	  by calling
	  dedicated methods for each case.
	  
	  new tourneyBreakCheck method is a timer method called while the
	  tournament is on break
	  to inform the user and exit from the tournament break state.
	  
	  new tourneyDeal method that is called when a tournament switches
	  to
	  running state because in rare cases it may not receive any event
	  that
	  triggers the PokerTable autodeal function (such a case shows
	  while
	  running the tests under a controlled clock)
	  
	  new tourneyBreakWait method that broadcast informative messages
	  to the players involved
	  in the tournament, depending on their involvement in a hand.
	  
	  new tourneyBreakResume method that broadcasts a messages to all
	  players when the tournament
	  exits from the break state to go back to the running state.
	* pokernetwork/pokerpackets.py: New packet PacketPokerGameMessage
	  that is not outbound. It is used to notify the
	  client about events such as tournament breaks that are not just
	  informative but
	  connected to the game logic.
	* pokernetwork/pokerlock.py: PokerLock.acquire_sleep controls the
	  looping frequency of the thread
	  loop in case the resource is busy.
	* conf/poker.server.xml.in: breaks_check default value

2007-04-25  Loic Dachary <loic@dachary.org>

	* database/1.0.36-1.0.37.sql: Repeat field name for CHANGE COLUMNS
	* database/1.0.36-1.0.37.sql: Add tournament breaks fields and
	  modify default value.
	* tests/test-pokerclient.py.in: Test that tournament break fields
	  are transmitted to the client.
	* pokernetwork/pokerservice.py: Copy tournament breaks fields
	  (first, interval, duration) into tourney structure.
	* pokernetwork/pokerpackets.py: Tournament breaks fields (first,
	  interval, duration) in tourney packet.
	* pokernetwork/__init__.py: New protocol because added tournament
	  break fields.
	* debian/python-poker-network.links: Upgrade sql file.
	* database/schema.sql.in: Add tournament breaks fields and new
	  default values.
	* Makefile.am: Add database upgrade.
	* tests/test-poker2d.py.in: Look for libraries in build dir, not in
	  src dir.
	* tests/test-poker2d.py.in: Search for modules in the source dirs
	  first.
	* tests/test-pokerdisplay2d/pygame.py: Mockup Sound method for
	  pygame mixer.

2007-04-24  Loic Dachary  <loic@dachary.org>

	* tests/run.in: Verbose tracing samples.
	
	* tests/test-pokerclient.py.in: Implement test for poker client
	  methods setPlayerTimeout and resendPlayerTimeoutWarning.  Tweak
	  the clock before including pokerclient.  Implement test for
	  pokerclient method setPlayerDelay.  Remove obsolete test to
	  avoid bloating. Control the twisted and poker-engine clock.
	  Reset the second counter before each test to ease the debugging
	  of time based tests. Implement a test for the pokerclient method
	  publishDelay.
	
	* pokernetwork/pokerservice.py: Replace SQL instruction related
	  to timestamp with the value from the seconds runtime.seconds
	  twisted function. This allows test cases to use a fake clock.

	* pokernetwork/{pokerclient,pokerservice,pokertable,protocol}.py:
	  replace time() with runtime.seconds so that tests can substitute
	  with a fake clock.

	* test-pygame/{__init__,pygame}.py: 
	  Test case for fail import of pygame module.

	* conf/poker.bot.xml.in conf/poker.client.xml.in
	conf/poker.server.xml.in examples/poker.bot.xml
	examples/poker.server-monotone.xml examples/poker.server.xml
	pokerclient2d/poker2d.xml.in tests/conf/poker.client.xml.in
	pokernetwork/__init__.py debian/changelog NEWS: Version bump

2007-04-05  Loic Dachary  <loic@dachary.org>

	* examples/test-pokerweb: Fix bashism	
	
2007-02-25  Loic Dachary  <loic@dachary.org>

	* Release 1.0.36

	* tests/test-pokertable.py.in, pokernetwork/pokertable.py: Double
	buy-in creates undefined condition : safeguard.

2007-02-17  Loic Dachary  <loic@dachary.org>

	* pokerui/pokerrenderer.py: check display (for quit bug)
	
	* tests/test-quit.py.in: set the display

	* pokernetwork/pokertable.py, pokernetwork/pokerservice.py, pokernetwork/pokerclient.py, pokernetwork/pokeravatar.py: use endornull

2007-02-14  Loic Dachary  <loic@dachary.org>

	* pokerui/pokerrenderer.py: check display (for quit bug)

	* tests/test-poker2d.py.in: updated sys.path

	* tests/run.in: wait before launching xvfb dependent test

	* debian/control.feisty: feisty support
	
2007-02-02  Loic Dachary  <loic@dachary.org>

	* Release 1.0.35
	
	* pokernetwork/pokeravatar.py:
	also replay if in muck state https://gna.org/bugs/index.php?8229
	https://gna.org/bugs/index.php?7807 https://gna.org/bugs/?7811

2007-02-02  Loic Dachary  <loic@dachary.org>

	* tests/test-fc.py: cosmetic changes

	* pokernetwork/client.py:
	check for .established_deferred.called in protocolInvalid because in some cases the protocolInvalid method may be called twice

2007-01-30  griim  <griim@mekensleep.com>

	* pokerui/pokerinterface.py, pokerui/pokerrenderer.py:
	UTF-8 is now defined as the default poker2d translation codeset

2007-01-30  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokertable.py:
	adjust table delay according to calculated delta to take in accound time cap

	* pokerclient2d/poker2d-test.xml: additional test server

	* examples/poker.bot.xml, examples/poker.server-monotone.xml, examples/poker.server.xml, conf/poker.bot.xml.in, conf/poker.client.xml.in, conf/poker.server.xml.in:
	version bump

2007-01-30  griim  <griim@mekensleep.com>

	* po/POTFILES.in, po/fr.po: added more translated string !

	* tests/Makefile.am, tests/test-unittesthandhistory.cpp:
	added test for hand_history.cpp

2007-01-29  griim  <griim@mekensleep.com>

	* pokerui/pokerinterface.py, pokerui/pokerrenderer.py:
	changed WIN32 local path to [./../locale)

	* pokerclient2d/main.c: fixed gtkrc to gtkrc.local

	* pokerclient2d/main.c:
	gtkrc file can now be substitued to a localized one

2007-01-28  griim  <griim@mekensleep.com>

	* pokerclient2d/python.c, pokerclient2d/main.c:
	added locale path for WIN32

	* pokerclient2d/mingw_make_install.bat, pokerclient2d/Makefile.cygwin-sh, pokerclient2d/Makefile.cygwin:
	added WIN32 define

2007-01-26  Cedric Pinson  <cpinson@freesheep.org>

	* ChangeLog: gentoo package

	* gentoo/dev-games/poker-network/poker-network-1.0.32-r1.ebuild:
	remove old pkg

2007-01-26  Cedric Pinson  <cpinson@freesheep.org>

	* Update gentoo package

2007-01-23  Johan Euphrosine  <proppy@duredgy>

	* pokerclient2d/data/interface/table:
	moved table data to separate directory

2007-01-23  loic  <loic@duredgy>

	* debian/control, debian/control.breezy, debian/control.dapper, debian/control.edgy, debian/control.etch, debian/control.hoary, debian/control.sarge, debian/control.unstable:
	requires at least poker-engine 1.0.22

2007-01-23  griim  <griim@mekensleep.com>

	* configure.ac: removed .cpp.in in /tests

	* tests/test-unittestgui.cpp, tests/test-unittestlobby.cpp, tests/test-unittestoutfits.cpp, tests/test-unittesttournaments.cpp:
	glade file now defined using GLADE_FILE (removed .cpp.in)

2007-01-23  Loic Dachary  <loic@dachary.org>

	* po/fr.po: translate tourney player rank

	* pokerui/pokerrenderer.py:
	format amount with PokerChips function otherwise amount is truncated by integer rounding (fixes https://gna.org/support/?1450)

	* tests/test-string.py.in: local tests command

	* pokernetwork/__init__.py, NEWS, ChangeLog: version bump

2007-01-23  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/poker2d.py:
	use gtk2reactor.portableInstall instead of black magic

	* pokerclient2d/mingw_make_install.bat: mingw compilation update

2007-01-21  Loic Dachary  <loic@dachary.org>

        * Release 1.0.34

	* tests/testbirthday.php.in, tests/Makefile.am:
	birthday php class tests

	* pokerweb/pages/tests/test-edit_account.html:
	add gender and birthday tests

	* pokerweb/pages/tests/test-create_account.html:
	fix login too long code
	add gender and birthday tests

	* pokerweb/pages/poker.php:
	break birthday into three fields in getpersonalinfo for greater convenience

	* pokerweb/pages/edit_account.php, pokerweb/pages/create_account.php:
	fill gender and birthday

	* pokerweb/pages/birthday.php, pokerweb/Makefile.am:
	class helper for forms including birthday

	* pokernetwork/pokerservice.py, pokernetwork/pokerpackets.py:
	gender & birthday added to personal data packets

	* pokernetwork/__init__.py:
	personal data packet has changed hence the protocol must be upgraded

	* configure.ac: birthday tests

2007-01-20  Loic Dachary  <loic@dachary.org>

	* tests/test-unittestoutfits.cpp:
	GLADE_FILE environment variable points to glade file so that CPP tests can figure it out

	* tests/Makefile.am: test all

	* tests/Makefile.am: only test c++

	* tests/test-pokerservice.py.in: players is a list, not a tuple

	* tests/run.in:
	GLADE_FILE environment variable points to glade file so that CPP tests can figure it out

	* tests/conf/poker.client.xml.in: version bump

	* tests/test-pokerservice.py.in: test cleanup tourney

	* pokerclient2d/poker2d-test.xml: no sound by default

	* configure.ac, tests/Makefile.am:
	fix --disable-poker2d by defining python conditionals

	* pokernetwork/pokerservice.py: s/spanw/spawn/

2007-01-19  griim  <griim@mekensleep.com>

	* po/fr.po: more translation

	* po/raw.string: more string added

	* pokerclient2d/outfits.c:
	added translation capabilities to element description

	* tests/Makefile.am: added test-unittestoutfits.cpp for build

	* tests/test-unittestoutfits.cpp: test for pokerclient2d/outfits.c

2007-01-18  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokertable.py, pokernetwork/pokerclient.py:
	client generates messages and does not depend on server

2007-01-16  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/data/interface/gtkrc: feedback on sit_seat_mouse_hover

	* pokerclient2d/data/interface/gtkrc: chat_background in black

2007-01-16  Cedric Pinson  <cpinson@freesheep.org>

	* ChangeLog, gentoo/dev-games/poker-network/poker-network-1.0.34-r1.ebuild:
	Update gentoo package

2007-01-16  griim  <griim@mekensleep.com>

	* po/fr.po: fixed some translation

	* Makefile.am: added raw.string to extra dist

2007-01-16  Cedric Pinson  <cpinson@freesheep.org>

	* Update gentoo package

2007-01-15  Loic Dachary  <loic@dachary.org>

	* tests/test-pokercashier.py.in:
	test multiple simultaneous cashin operations

	* pokernetwork/pokerservice.py:
	don't bother to update the database for freerolls with no prize pool (used for test purposes)

	* pokernetwork/pokerlock.py:
	cover all error cases and improve verbosity

	* pokerclient2d/poker2d.xml.in, examples/poker.server-monotone.xml, examples/poker.server.xml:
	version bump

	* examples/poker.bot.xml:
	connect 2 bots to regular tournament (won't last more than two minutes)

	* database/schema.sql.in:
	create a short lived regular tournament instead of long lived bugous ones

	* conf/poker.bot.xml.in, conf/poker.client.xml.in, conf/poker.server.xml.in:
	version bump

2007-01-15  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/data/interface/gtkrc, pokerclient2d/data/interface/raise_slider_dock.png, pokerclient2d/gamewindow.py:
	new slider skin

	* pokerclient2d/data/interface/mockup.svg: fixed pot position

2007-01-15  griim  <griim@mekensleep.com>

	* po/fr.po: updated

2007-01-15  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/data/interface/gtkrc:
	removed game_window_fixed from path

	* pokerclient2d/pokeranimation2d.py:
	fixed widget name in pokeranimation

	* tests/test-pokerdisplay2d.py.in: added test for pokeranimation

	* pokerclient2d/data/interface/gtkrc: game_fixed -> game_window_fixed

	* pokerclient2d/gamewindow.py: dont' remove sit_seat

2007-01-15  Loic Dachary  <loic@dachary.org>

	* pokerclient2d/poker2d-test.xml, pokerclient2d/client.xml:
	version bump

2007-01-15  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/gamewindow.py: card_seat to sit_seat

	* pokerclient2d/pokerdisplay2d.py: game_fixed to game_window_fixed

2007-01-15  griim  <griim@mekensleep.com>

	* pokerui/pokerrenderer.py: (fixed typo)

	* pokerui/pokerrenderer.py: Poker Hand at showdown is now translatable

	* tests/test-pokerrenderer.py.in: added test for _handleConnection

2007-01-13  griim  <griim@mekensleep.com>

	* po/POTFILES.in, po/fr.po, po/raw.string:
	This file contains text to translate not located into the source code

2007-01-12  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/data/svg2gtk.py:
	refactored SVG2Glade and SVG2Rc to use sequence type instead of concatening string on the fly

	* pokerclient2d/data/svg2gtk.py: removed ContentHandler base class

2007-01-12  griim  <griim@mekensleep.com>

	* po/fr.po: fixed "sit out next turn" translation length

2007-01-12  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/data/interface/mockup.svg, pokerclient2d/data/svg2gtk.py, pokerclient2d/gamewindow.py, tests/test-gamewindow.py.in, tests/test-svg2gtk.py.in:
	rename game_fixed to game_window_fixed

2007-01-11  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/client.xml, pokerclient2d/data/interface/call.png, pokerclient2d/data/interface/check.png, pokerclient2d/data/interface/fold.png, pokerclient2d/data/interface/gtkrc, pokerclient2d/data/interface/raise.png, pokerclient2d/gamewindow.py, pokerclient2d/pokerdisplay2d.py, tests/test-gamewindow.py.in, tests/test-pokerdisplay2d.py.in:
	fix font overlap on action button
	switch action button to toggle button
	remove text from action button gfx

2007-01-10  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/data/svg2gtk.py, tests/test-svg2gtk.py.in:
	fixed style overlap on button quit

	* pokerclient2d/data/interface/gtkrc, pokerclient2d/gamewindow.py:
	fixed font size

2007-01-10  loic  <loic@dachary.org>

	* debian/changelog, pokernetwork/__init__.py, ChangeLog, NEWS:
	1.0.34 version bump

2007-01-10  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/data/interface/mockup.svg, pokerclient2d/data/pygtk.py, pokerclient2d/gamewindow.py:
	fixed card position

2007-01-10  griim  <griim@mekensleep.com>

	* Makefile.am: fixed missing extra dist files

2007-01-08  Loic Dachary  <loic@dachary.org>

        * Release 1.0.33

	* tests/Makefile.am, tests/poker.test18pokerclient.xml:
	test dedicated structure

	* tests/test-pokerclient.py.in: create symbolic names for tables
	add prefix to avoid output confusion in tests result analysis
	the sit helper controls the table, the seat and the auto_muck
	helpers that expect packets generaly allow an extra argument of the next expected packet
	implement test18_blindAllIn

	* pokernetwork/pokertable.py:
	prefix with [server] to avoid confusion in tests
	honor forced_dealer_seat in table description, if provided (eleminate a randomness source in tests)
	fix sr#1418 https://gna.org/support/?1418 related to inability to muck hands in tournaments

2007-01-08  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/Makefile.am: Makefile to batch transition for windows

	* pokerclient2d/build_with_mingw.bat:
	build_with_mingw output in site-packages

	* pokerclient2d/build_with_mingw.bat: added MINGWROOT envvar

	* pokerclient2d/build_with_mingw.bat: added PYTHONROOT envvar

	* pokerclient2d/build_with_mingw.bat: added GTKROOT envvar

	* pokerclient2d/build_with_mingw.bat: removed envvar dependencies

	* pokerclient2d/Makefile.mingw: removed mingw makefile

	* pokerclient2d/build_with_mingw.bat: build with mingw batch file

	* pokerclient2d/Makefile.mingw: dll name and paths update

2007-01-06  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokerservice.py:
	don't override argument serial in getHandHistory (sr #1432) : shows random opponent cards instead of self

2007-01-05  griim  <griim@mekensleep.com>

	* po/fr.po: added more translations

	* pokerui/pokerrenderer.py: fixed some missing translations

2007-01-05  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokertable.py: delta must be an int, always

2007-01-05  griim  <griim@mekensleep.com>

	* configure.ac:
	added test-unittesttournaments.cpp and test-unittestlobby.cpp to AC_CONFIG_FILES

	* tests/test-unittestlobby.cpp, tests/test-unittesttournaments.cpp:
	renamed to .cpp.in

	* tests/test-unittestlobby.cpp.in, tests/test-unittesttournaments.cpp.in:
	added @top_srcdir@ for data path

2007-01-04  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/Makefile.mingw, pokerclient2d/Makefile.am:
	makefile for mingw

2007-01-04  griim  <griim@mekensleep.com>

	* po/POTFILES.in, po/fr.po: added more translatable strings

	* po/POTFILES.skip: not used at the moment

	* pokerclient2d/lobby.c, pokerclient2d/tournaments.c:
	added I18N support

	* tests/Makefile.am: changed test-unittestmain target

	* tests/io_mockup.c, tests/test-unittestlobby.cpp, tests/test-unittesttournaments.cpp:
	tests for lobby & tournaments

	* pokerui/pokerinterface.py: added I18N support

	* tests/test-string.py.in: added PokerInterface test case

2007-01-03  griim  <griim@mekensleep.com>

	* pokerui/pokerrenderer.py: added I18N support

	* tests/test-rank.py.in: renamed to test-string.py.in

	* configure.ac, tests/Makefile.am: changed test-rank to test-string

	* tests/test-string.py.in: unittest dealing with string output

2006-01-03  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/data/interface/bet.png, pokerclient2d/data/interface/call.png, pokerclient2d/data/interface/card_back.png, pokerclient2d/data/interface/check.png, pokerclient2d/data/interface/dealer.png, pokerclient2d/data/interface/exit.png, pokerclient2d/data/interface/fold.png, pokerclient2d/data/interface/get_seat.png, pokerclient2d/data/interface/money.png, pokerclient2d/data/interface/name.png, pokerclient2d/data/interface/player.png, pokerclient2d/data/interface/player_active.png, pokerclient2d/data/interface/pot.png, pokerclient2d/data/interface/raise.png, pokerclient2d/data/interface/raise_slider.png, pokerclient2d/data/interface/raise_slider_dock.png, pokerclient2d/data/interface/rebuy.png, pokerclient2d/data/interface/status.png, pokerclient2d/data/interface/table.png, pokerclient2d/data/interface/table1_active.png, pokerclient2d/data/interface/table1_normal.png, pokerclient2d/data/interface/table2_active.png, pokerclient2d/data/interface/table2_normal.png, pokerclient2d/data/interface/table3_active.png, pokerclient2d/data/interface/table3_normal.png, pokerclient2d/data/interface/table4_active.png, pokerclient2d/data/interface/table4_normal.png, pokerclient2d/data/interface/table5_active.png, pokerclient2d/data/interface/table5_normal.png, pokerclient2d/data/interface/table_background.png, pokerclient2d/data/interface/tables_dock.png, pokerclient2d/data/interface/winner.png:
	re-added data with -kb

2006-12-31  Johan Euphrosine  <proppy@aminche.com>

	* tests/test-gladegen.py.in: remove obsolete files

2006-12-31  Loic Dachary  <loic@dachary.org>

	* Makefile.am: po/Makevars.template

	* debian/changelog, debian/control, debian/control.breezy, debian/control.dapper, debian/control.edgy, debian/control.etch, debian/control.hoary, debian/control.sarge, debian/control.unstable:
	poker2d depends on gtk2-engines-pixbuf

	* debian/python-poker2d.install: add locales

	* config/ccpython.m4: uncache

2006-12-30  Loic Dachary  <loic@dachary.org>

	* tests/run.in: run unittestmain in Xvfb

	* pokerclient2d/data/Makefile.am:
	depends on mockup.svg + remove generated files in clean-local

2006-12-29  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/data/Makefile.am: fixed gtkrc.mockup

	* pokerclient2d/data/interface/mockup.svg: removed absolute data path

	* pokerclient2d/data/Makefile.am, pokerclient2d/data/interface/gtkrc:
	added gtkrc override

	* pokerclient2d/data/Makefile.am, pokerclient2d/gamewindow.py:
	table status

	* pokerclient2d/data/interface/mockup.svg, pokerclient2d/data/interface/status.png:
	added table_status

2006-12-29  Loic Dachary  <loic@dachary.org>

	* debian/rules: don't autoreconf

2006-12-29  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/gamewindow.py: resize raise range

2006-12-29  Loic Dachary  <loic@dachary.org>

	* tests/run.in: gamewindow & svg2gtk : need display

	* debian/rules: don't autoreconf

2006-12-28  griim  <griim@mekensleep.com>

	* pokerclient2d/data/interface/interface.glade:
	ajusted "translatable" attributes

2006-12-29  Loic Dachary  <loic@dachary.org>

	* debian/control, debian/control.breezy, debian/control.dapper, debian/control.edgy, debian/control.etch, debian/control.hoary, debian/control.sarge, debian/control.unstable:
	intl requires cvs

2006-12-28  Loic Dachary  <loic@dachary.org>

	* tests/test-pokerdisplay2d.py.in: no rcparse mockup

2006-12-28  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/pokerdisplay2d.py, tests/test-pokerdisplay2d.py.in:
	bind on_sit_seat%d_clicked to on_sit_clicked

2006-12-28  loic  <loic@dachary.org>

	* tests/test-pokerdisplay2d.py.in: fix the datadir

2006-12-28  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/pokerdisplay2d.py, pokerclient2d/data/Makefile.am, pokerclient2d/data/interface/.png, pokerclient2d/data/pygtk.py, tests/test-gamewindow.py.in, tests/test-pokerdisplay2d.py.in:
	removed skin directory

	* pokerclient2d/poker2d.in: removed Aero skin as default

	* pokerclient2d/data/Makefile.am:
	move data from EXTRA_DIST to poker2d_DATA

	* pokerclient2d/Makefile.am: gamewindow from EXTRA_DIST to _PYTHON

	* pokerclient2d/gamewindow.py, pokerclient2d/pokerdisplay2d.py, tests/test-pokerdisplay2d.py.in:
	switch to GladeWindowGlade for game_window widget

2006-12-28  loic  <loic@dachary.org>

	* tests/test-pokerclient.py.in, tests/test-clientserver.py.in:
	client setup and connection are separate in order to control the order in which the clients are connected

2006-12-28  Johan Euphrosine  <proppy@aminche.com>

	* tests/test-gamewindow.py.in, pokerclient2d/gamewindow.py:
	splitted gamewindow test

2006-12-28  griim  <griim@mekensleep.com>

	* tests/test-pokerdisplay2d.py.in: fixed datapath

2006-12-28  Johan Euphrosine  <proppy@aminche.com>

	* configure.ac, tests/Makefile.am, tests/test-gamewindow.py.in:
	added test for gamewindow

2006-12-28  griim  <griim@mekensleep.com>

	* configure.ac: changed GETTEXT settings

	* po/Makefile.in.in, po/Makevars, po/fr.po: define gettext domain

2006-12-28  loic  <loic@dachary.org>

	* debian/changelog, debian/po/es.po: spanish translation

2006-12-28  griim  <griim@mekensleep.com>

	* tests/test-unittestgui.cpp, tests/test-unittestgui.cpp.in:
	changed test-unittestgui.cpp to test-unittest.cpp.in

	* configure.ac: added tests/test-unittestgui.cpp to AC_CONFIG_FILES

2006-12-27  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/data/Makefile.am: removed old data

2006-12-27  loic  <loic@dachary.org>

	* tests/test-pokerclient.py.in: fix login calls and play options

	* pokerui/pokerrenderer.py: readytoplay when switching tables

2006-12-27  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/gamewindow.py: added gamewindow.py

2006-12-27  griim  <griim@mekensleep.com>

	* tests/test-pokerdisplay2d.py.in: fixed path

	* tests/conf/poker2d.xml.in: changed data path

2006-12-27  loic  <loic@dachary.org>

	* tests/test-pokerclient.py.in: don't control verbosity

	* tests/test-pokerclient.py.in: no dependency to client2d

2006-12-27  griim  <griim@mekensleep.com>

	* po/Makefile.in.in:
	Makefile.in.in doesn't delete itself anymore (using make maintainer-clean)

	* tests/test-pokerdisplay2d.py.in: fixed configuration file path

2006-12-27  loic  <loic@dachary.org>

	* tests/test-pokerservice.py.in:
	use constant shuffler for both tournaments and cards

	* tests/test-pokerclient.py.in: don't depend on pokerclient2d

2006-12-27  griim  <griim@mekensleep.com>

	* configure.ac: added GETTEXT support

	* ChangeLog: I18N

	* Makefile.am: added po as subdir

	* po/ChangeLog, po/LINGUAS, po/Makefile.in.in, po/POTFILES.in, po/POTFILES.skip, po/fr.po:
	I18N support

2006-12-27  Johan Euphrosine  <proppy@aminche.com>

	* pokerclient2d/Makefile.am, pokerclient2d/gamewindow.py: added gamewindow.py

	* pokerclient2d/data/interface/pixmaps/.jpg, configure.ac, tests/Makefile.am, pokerclient2d/Makefile.am, pokerclient2d/game_window.py, pokerclient2d/gladegen.py:
	removed old files

	* pokerclient2d/data/pygtk.py, pokerclient2d/data/Makefile.am:
	added sample pygtk application using new skin

	* pokerclient2d/data/skin/mockup.svg, pokerclient2d/data/skin/money.png, pokerclient2d/data/skin/name.png, pokerclient2d/data/skin/winner.png:
	new placeholder data

	* pokerclient2d/data/Makefile.am: add mockup.glade and gtkrc generation

	* pokerclient2d/data/skin/mokup.png: remove duplicate data

	* pokerclient2d/data/skin/gtkrc: removed generated gtkrc

	* pokerclient2d/data/skin/.png:
	remove duplicate data

	* pokerclient2d/data/interface/mockup.svg, pokerclient2d/data/Makefile.am:
	add mockup.svg

	* configure.ac, pokerclient2d/data/Makefile.am, pokerclient2d/data/svg2gtk.py, tests/Makefile.am, tests/test-svg2gtk.py.in:
	added svg2gtk conversion tool

2006-12-27  Loic Dachary  <loic@dachary.org>

	* conf/poker.server.xml.in: add autodeal_tournament_min

	* tests/test-pokertable.py.in:
	test all autodeal cases involving tournament tables.

	* tests/test-pokerlock.py.in: use verbose text reporter

	* tests/test-pokerclient.py.in:
	add sitngo tests (sitout + sit, timeout, play without special cases)
	add constant shuffler for players in tournament and cards
	set the ROLE when login
	parameter in the allin function to control the sit out
	add check_or_call function to help fake a player behaviour
	externalize readyToPlay and processingHand as they may be of use in other tests

	* pokernetwork/pokertable.py:
	ensure a minimun hand duration for tournament tables
	fix client.PacketPokerError error (should be sendPacketVerbose)

	* pokernetwork/pokerservice.py: add missing start time to tourney

	* pokernetwork/pokerpackets.py:
	cope with possible string affiliate arguments

	* pokernetwork/pokerlock.py: better verbosity

	* pokerclient2d/poker2d-test.xml, pokerclient2d/client.xml:
	version bump

	* examples/poker.bot.xml: sitngo robot player

2006-12-27  Johan Euphrosine  <proppy@aminche.com>

	* tests/run.in: bashism require bash

	* configure.ac: configure now checks for bash

	* tests/test-pokerdisplay2d.py.in, pokerclient2d/pokerdisplay2d.py:
	added new cards gfx (jpg to png)

	* pokerclient2d/data/Makefile.am: added new cards

2006-12-27 Jerome Jeannin  <jerome@mekensleep.com>

	* I18N support

	* added po subdir

2006-12-21  Cedric Pinson  <cpinson@freesheep.org>

	* pokernetwork/pokerchildren.py, pokernetwork/pokerclient.py, pokernetwork/upgrade.py:
	Added checkNetwork, checkClientVersionFailedNoNetwork, checkClientVersionFailedHostDoesNotRespond and 2 signals in PokerRsync

	* pokerclient2d/poker2d.py:
	added the check of the network at start of the game (if a problem it quit)
	added a test if there is a connexion problem while upgrading
	change the resolver behaviour in poker2d

2006-12-14  Loic Dachary  <loic@dachary.org>

	* tests/conf/poker.client.xml.in: version bump

	* tests/test-pokerservice.py.in: test tournaments

	* pokernetwork/pokerservice.py: tourney delays are parameters
	cancel timer is less verbose
	updateTourneySchedule get regular tournaments instead of just sit_n_go
	checkTourneySchedule launches regular tournaments
	spawnTourney uses players_min player_timeout prize_min and bailor serial
	             (bailor being the player paying for the guaranteed prize pool)
	             register the tourney cancelation callback
	never use tourneys_schedule table on an already spawned tournament because
	 the entry is gone for regular tournaments

	tourneyFinished use the bailor of a guaranteed prize pool if needed
	fix missing tourney rake (because of string conversion)
	tourneyRegister don't send to client if None
	tourneyCancel calls unregister on all players

	* pokerclient2d/poker2d.xml.in, pokerclient2d/poker2d-test.xml, examples/poker.bot.xml, examples/poker.server-monotone.xml, examples/poker.server.xml:
	version bump

	* debian/python-poker-network.links: 33 sql edits

	* debian/control, debian/control.breezy, debian/control.dapper, debian/control.edgy, debian/control.etch, debian/control.hoary, debian/control.sarge, debian/control.unstable:
	depends on poker-engine 1.0.21 or above

	* database/schema.sql.in: gender & birthdate in user_private
	tourneys have players_min + player_timeout + prize_min + bailor_serial
	tourneys buy_in & rake have default
	tourneys indices
	all tables are InnoDB

	* database/1.0.32-1.0.33.sql: tournament edits

	* database/1.0.31-1.0.32.sql: add version

	* conf/poker.bot.xml.in, conf/poker.client.xml.in, conf/poker.server.xml.in:
	version bump

	* Makefile.am: add database upgrade scripts

2006-12-13  Cedric Pinson  <cpinson@freesheep.org>

	* gentoo/dev-games/poker-network/poker-network-1.0.32-r1.ebuild: ops

2006-12-12  Loic Dachary  <loic@dachary.org>

	* debian/po/fr.po: french translation

2006-12-12  Cedric Pinson  <cpinson@freesheep.org>

	* gentoo/dev-games/poker-network/poker-network-1.0.30-r1.ebuild, gentoo/dev-games/poker-network/poker-network-1.0.32-r1.ebuild:
	gentoo package

2006-12-11  Johan Euphrosine (proppy)  <proppy@aminche.com>

	* tests/test-upgrade.py.in: refactored test

	* tests/test-upgrade.py.in: removed not used anymore class

	* tests/test-upgrade.py.in:
	fixed test_CheckClientVersionRsyncFailedAndNoVersion with no matching version supplied

	* pokernetwork/upgrade.py:
	fixed CheckClientVersion with no matching version

	* tests/test-upgrade.py.in, pokernetwork/upgrade.py:
	removed duplication

	* ChangeLog: update name and changelog

	* tests/test-upgrade.py.in: update test for checkclientversion hang

	* pokernetwork/upgrade.py: fixed checkclientversion hang

2006-12-11  Loic Dachary  <loic@dachary.org>

	* debian/changelog, pokernetwork/__init__.py, ChangeLog, NEWS:
	version bump

2006-12-08  Loic Dachary  <loic@dachary.org>

        * Release 1.0.32

	* pokerclient2d/data/Makefile.am: add skin images

	* pokernetwork/pokertable.py:
	disambiguate notification message of autodeal by adding the table number

	* pokerclient2d/tournaments.c: don't set title on widgets

	* configure.ac:
	depend on libxml2 (not strictly necessary as poker-engine already does, but does not hurt either)

	* debian/python-poker-network.config, debian/python-poker-network.templates:
	rename misleading tag /skip into /configure

	* debian/python-poker-network.postinst, debian/python-poker-network.postrm, debian/python-poker-network.prerm:
	don't call dbconfig-common if poker-network was not configured

2006-12-06  proppy  <proppy@call>

	* pokerclient2d/data/skin/gtkrc, pokerclient2d/game_window.py:
	switch table

	* pokerclient2d/game_window.py: accelerator_widget

	* pokerclient2d/game_window.py: winner widget

	* pokerclient2d/data/skin/table_background.png: table background data

	* pokerclient2d/data/skin/10clubs.png, pokerclient2d/data/skin/10diamonds.png, pokerclient2d/data/skin/10hearts.png, pokerclient2d/data/skin/10spades.png, pokerclient2d/data/skin/2clubs.png, pokerclient2d/data/skin/2diamonds.png, pokerclient2d/data/skin/2hearts.png, pokerclient2d/data/skin/2spades.png, pokerclient2d/data/skin/3clubs.png, pokerclient2d/data/skin/3diamonds.png, pokerclient2d/data/skin/3hearts.png, pokerclient2d/data/skin/3spades.png, pokerclient2d/data/skin/4clubs.png, pokerclient2d/data/skin/4diamonds.png, pokerclient2d/data/skin/4hearts.png, pokerclient2d/data/skin/4spades.png, pokerclient2d/data/skin/5clubs.png, pokerclient2d/data/skin/5diamonds.png, pokerclient2d/data/skin/5hearts.png, pokerclient2d/data/skin/5spades.png, pokerclient2d/data/skin/6clubs.png, pokerclient2d/data/skin/6diamonds.png, pokerclient2d/data/skin/6hearts.png, pokerclient2d/data/skin/6spades.png, pokerclient2d/data/skin/7clubs.png, pokerclient2d/data/skin/7diamonds.png, pokerclient2d/data/skin/7hearts.png, pokerclient2d/data/skin/7spades.png, pokerclient2d/data/skin/8clubs.png, pokerclient2d/data/skin/8diamonds.png, pokerclient2d/data/skin/8hearts.png, pokerclient2d/data/skin/8spades.png, pokerclient2d/data/skin/9clubs.png, pokerclient2d/data/skin/9diamonds.png, pokerclient2d/data/skin/9hearts.png, pokerclient2d/data/skin/9spades.png, pokerclient2d/data/skin/Aclubs.png, pokerclient2d/data/skin/Adiamonds.png, pokerclient2d/data/skin/Ahearts.png, pokerclient2d/data/skin/Aspades.png, pokerclient2d/data/skin/Jclubs.png, pokerclient2d/data/skin/Jdiamonds.png, pokerclient2d/data/skin/Jhearts.png, pokerclient2d/data/skin/Jspades.png, pokerclient2d/data/skin/Kclubs.png, pokerclient2d/data/skin/Kdiamonds.png, pokerclient2d/data/skin/Khearts.png, pokerclient2d/data/skin/Kspades.png, pokerclient2d/data/skin/Qclubs.png, pokerclient2d/data/skin/Qdiamonds.png, pokerclient2d/data/skin/Qhearts.png, pokerclient2d/data/skin/Qspades.png, pokerclient2d/data/skin/bet.png, pokerclient2d/data/skin/call.png, pokerclient2d/data/skin/card_back.png, pokerclient2d/data/skin/check.png, pokerclient2d/data/skin/dealer.png, pokerclient2d/data/skin/exit.png, pokerclient2d/data/skin/fold.png, pokerclient2d/data/skin/get_seat.png, pokerclient2d/data/skin/mokup.png, pokerclient2d/data/skin/player.png, pokerclient2d/data/skin/player_active.png, pokerclient2d/data/skin/pot.png, pokerclient2d/data/skin/raise.png, pokerclient2d/data/skin/raise_slider.png, pokerclient2d/data/skin/raise_slider_dock.png, pokerclient2d/data/skin/rebuy.png, pokerclient2d/data/skin/table.png, pokerclient2d/data/skin/table1_active.png, pokerclient2d/data/skin/table1_normal.png, pokerclient2d/data/skin/table2_active.png, pokerclient2d/data/skin/table2_normal.png, pokerclient2d/data/skin/table3_active.png, pokerclient2d/data/skin/table3_normal.png, pokerclient2d/data/skin/table4_active.png, pokerclient2d/data/skin/table4_normal.png, pokerclient2d/data/skin/table5_active.png, pokerclient2d/data/skin/table5_normal.png, pokerclient2d/data/skin/tables_dock.png:
	new hud data

	* pokerclient2d/pokerdisplay2d.py: set_text->set_label

	* pokerclient2d/data/skin/gtkrc: added sit_widget

	* pokerclient2d/game_window.py: added table_status and test

	* pokerclient2d/game_window.py: test for game_fixed

	* pokerclient2d/game_window.py: sit_widget skinned

	* pokerclient2d/data/skin/gtkrc: new skin

	* pokerclient2d/Makefile.am, pokerclient2d/game_window.py:
	game_window in progress

2006-12-05  Loic Dachary  <loic@dachary.org>

	* Makefile.am: upgrades for bot and client

	* debian/python-poker-network.postinst: don't ucf generated files

	* pokerclient2d/Makefile.am: add missing upgrade file

	* debian/rules: absolute path

	* debian/rules: set default browser to x-www-browser

	* debian/control, debian/control.breezy, debian/control.dapper, debian/control.edgy, debian/control.etch, debian/control.sarge, debian/control.unstable:
	don't depend on browser

	* configure.ac: --with-wwwbrowser overrides autodetect of browser

2006-12-04  Loic Dachary  <loic@dachary.org>

	* debian/control, debian/control.breezy, debian/control.dapper, debian/control.edgy, debian/control.etch, debian/control.hoary, debian/control.sarge, debian/control.unstable, debian/python-poker-network.postinst, debian/python-poker-network.postrm:
	poker.bot.xml and poker.client.xml are handled with ucf

	* conf/poker.client.xml.in, conf/poker.bot.xml.in, upgrades/poker.bot/1.0.31-1.0.32.xsl, upgrades/poker.client/1.0.31-1.0.32.xsl:
	ping=10

	* tests/test-pokertable.py.in:
	don't re-entrant test (callLater the callback)
	modify test to check that the player ready receives notification that the player not ready is stalling

2006-12-04  Loic Dachary  <loic@dachary.org>

	* pokerclient2d/upgrades/1.0.31-1.0.32.xsl: ping=10

	* upgrades/poker.server/1.0.31-1.0.32.xsl: ping=20

	* pokernetwork/server.py: copyright update

	* pokernetwork/pokertable.py:
	autoDealCheck send warning messages every 15 seconds to players who are waiting for other players

	* pokernetwork/pokerservice.py:
	safeguard broadcast for avatars that don't have protocol

	* pokerclient2d/poker2d.xml.in: ping = 10

	* pokerclient2d/poker2d-test.xml: version bump + ping = 10

	* pokerclient2d/client.xml: version bump

	* examples/poker.bot.xml: distribute less money to bots

	* conf/poker.server.xml.in: autodeal_check replaces autodeal_warning

	* Makefile.am: upgrade for server conf : ping reduced to 20s

	* conf/poker.bot.xml.in: don't prefix with pages

	* pokernetwork/pokerpackets.py, pokernetwork/pokerclientpackets.py:
	hand_replays belongs to pokerpackets.py

2006-12-03  Loic Dachary  <loic@dachary.org>

	* tests/conf/poker.client.xml.in: bump version

	* tests/test-pokerclient.py.in:
	test14 : poll the messages database table looking for messages to broadcast to all clients

	* pokernetwork/pokerservice.py:
	a list of avatars is maintained for broadcast purposes
	poll the messages database table looking for messages to broadcast to all clients

	* pokernetwork/pokerpackets.py:
	pokerclientpackets for client2client packets separated from pokerpackets
	complete renumbering of packets
	command line renumbering procedure embedded

	* pokernetwork/pokerclientpackets.py, pokernetwork/pokerbot.py, pokernetwork/pokerclient.py, pokerui/pokeranimation.py, pokerui/pokerchat.py, pokerui/pokerrenderer.py, tests/test-pokerdisplay2d.py.in, tests/test-pokerinteractor.py.in, tests/test-pokerinterface.py.in, tests/test-xmlrpc.py.in:
	pokerclientpackets for client2client packets separated from pokerpackets

	* pokernetwork/pokeravatar.py: string representation of avatar

	* pokernetwork/__init__.py, pokerclient2d/poker2d.py, pokerclient2d/pokerdisplay2d.py:
	version bump and protocol bump

	* examples/poker.bot.xml, examples/poker.server-monotone.xml, examples/poker.server.xml:
	version bump

	* database/schema.sql.in, database/1.0.31-1.0.32.sql: messages table

	* conf/poker.server.xml.in: version bump
	messages database poll interval time

	* Makefile.am: messages table

	* tests/test-pokertable.py.in: test-pokertable

	* tests/test-pokerclient.py.in: rename test05

	* tests/Makefile.am: test-pokertable

	* pokerui/pokerrenderer.py:
	POKER_MESSAGE + MESSAGE is displayed with showMessage

	* pokernetwork/protocol.py: copyright updates

	* pokernetwork/pokertable.py: player_timeout defaults to 60
	cancelDealTimeout as a function for test access
	if the autodeal delta is above the autodeal_check threshold,
	issue a warning to the client

	* pokernetwork/pokerserver.py: bump version

	* pokernetwork/pokerpackets.py: new PACKET_POKER_MESSAGE
	each packet has a serial number that is calculated instead of static

	* pokernetwork/pokerclient.py: PACKET_POKER_MESSAGE has precendence
	PACKET_MESSAGE is an outbound packet

	* pokernetwork/packets.py:
	message package for server notification on arbitrary subjects

	* pokerclient2d/poker2d.xml.in: bump version

	* conf/poker.server.xml.in:
	default autodeal_check="15" and version bump

	* conf/poker.bot.xml.in, conf/poker.client.xml.in: bump version

	* configure.ac: pokertable tests

	* Makefile.am: copyright updates

2006-12-02  Loic Dachary  <loic@dachary.org>

	* debian/changelog, NEWS, ChangeLog: version bump

2006-12-01  Loic Dachary  <loic@dachary.org>

        * Release 1.0.31

	* conf/poker.server.xml.in, pokernetwork/pokertable.py:
	autodeal_max default value

	* debian/control.unstable, debian/control, debian/control.breezy, debian/control.dapper, debian/control.edgy, debian/control.etch, debian/control.hoary, debian/control.sarge, debian/poker-web.postinst, debian/poker-web.postrm:
	ucf the constant.php file so that it's not overriden after each installation

	* tests/test-pokerclient.py.in: inverted readytoplay sent

	* pokerweb/pages/tests/test-index.html: wait after goback

	* pokerweb/pages/index.php: display values in units, not in cents

	* pokerweb/pages/edit_account.php, pokerweb/pages/create_account.php:
	firstname and lastname are input instead of textarea

	* pokerweb/pages/constants.php.ref.in:
	distinguish money server public and private url

	* pokerweb/pages/cash_out.php, pokerweb/pages/cash_in.php:
	distinguish money server public and private url
	display values in units, not in cents

	* debian/python-poker-network.postinst, debian/rules, debian/python-poker2d.postinst:
	%WWW% substitution

2006-11-30  Loic Dachary  <loic@dachary.org>

	* tests/testpoker.php.in: unit test covering 100% of pages/poker.php

	* tests/testicurrency.php.in: use root mysql user for tests

	* tests/testcurrency.php.in, pokerweb/pages/currency.php:
	_merge_notes must always be called with a string value (not numerical)
	otherwise the usage of special tables is compromized

	* tests/test-pokerservice.py.in: test setPlayerImage and getPlayerImage

	* tests/test-pokerclient.py.in: test setPlayer and getPlayer
	test cashOut (success and error)

	* tests/test-pokercashier.py.in: test cashOut failure

	* tests/test-poker-interface.py:
	define time unit in a variable and change all delays to use this time
	unit in order to reduce the time spent in this test

	* tests/test-currencyclient.py.in: use root mysql user for tests
	check that breakNotes withdrawing the full available amount works

	* tests/pokerweb: selenium replaces curl based tests

	* tests/Makefile.am: unit tests for poker.php

	* pokerweb/pages/poker.php: send image_type with setPlayerImage packets

	* pokerweb/pages/edit_account.php, pokerweb/pages/create_account.php:
	add stars on mandatory fields

	* pokernetwork/server.py:
	should a deferred return on error, translate this condition into a
	PacketError that is sent to the client. It typically happens when a
	money transaction fails. If such a packet is not returned, the client
	waits forever instead of gracefully handling an error notification.

	* pokernetwork/pokerservice.py:
	getPlayerImage and setPlayerImage handle the GET_PLAYER_IMAGE and PLAYER_IMAGE
	packet types

	* pokernetwork/pokerpackets.py:
	player_image packet also carries the image mime type

	* examples/test-pokerweb: set the currency user and password to root

	* database/schema.sql.in, database/1.0.30-1.0.31.sql:
	avatar image_type defaults to image/png

	* pokernetwork/currencyclient.py, pokernetwork/pokeravatar.py, pokernetwork/pokercashier.py, pokernetwork/pokerclient.py, pokernetwork/pokerpackets.py:
	copyright updates

	* pokernetwork/pokerpackets.py:
	new packets: PACKET_POKER_PLAYER_IMAGE and PACKET_POKER_GET_PLAYER_IMAGE

	* pokernetwork/pokerclient.py:
	don't abort all tables if the client factory has the crashing flag set. This allows for
	running the reactor some more after catching a SIGSEGV, in order to wait for the process
	child death.

	* pokernetwork/pokercashier.py:
	Failure message now prints the content of the web page if the failure is a web "server error"
	this special case was necessary because the default str method of the web error object does not
	print the content of the page.

	cashOut special case handling fix : if cashOut all money from the safe. In this case the
	currency server is expected to return two notes : one of the total amount and the other with
	zero. The zero value note is discarded and the code gracefully behaves when there is no bank
	note going back to the safe (i.e. the user has a note and there's nothing left in the safe).

	* pokernetwork/pokeravatar.py:
	forward PACKET_POKER_GET_PLAYER_IMAGE and PACKET_POKER_PLAYER_IMAGE packet to pokerservice

	* pokernetwork/currencyclient.py:
	breakNote : if one of the two values is zero, just return the note and
	a fake zero value note (also handled in FakeCurrencyClient). Added
	FakeCurrencyClient verbosity and ability to fail on demand with
	FakeCurrencyFailure for test purposes

	* pokerclient2d/poker2d.xml.in:
	POKER_WWW_HOST replaces POKER_SERVER_HOST for the web part

	* examples/test-pokerweb:
	run-pokerserver without bots (DONT_RUN_BOTS=yes) and wait for selenium
	tests to be run manually instead of launching a curl based test suite

	* examples/run-pokerserver:
	can run the test server without bot if DONT_RUN_BOTS=yes

	* debian/rules:
	use dbconfig-common variable names instead of %SOME% in configure
	kill manual installation of pokerweb that now has its own installation

	* debian/python-poker-network.templates: dbconfig for poker database
	prompt for poker-web host

	* debian/python-poker-network.postrm: dbconfig for poker database

	* debian/python-poker-network.postinst: dbconfig for poker database
	edit defaults for bots according to user answer
	replace %HOST% in client files from /usr/share to /etc instead of /etc inplace

	* debian/python-poker-network.links:
	mysql schema and upgrades made available to dbconfig-common

	* debian/python-poker-network.init:
	by default bots are not run (controled by default file)

	* debian/python-poker-network.default: by default bots are not run

	* debian/python-poker-network.config: dbconfig for poker database

	* debian/poker-web.prerm: dbconfig for poker web database and currency

	* debian/poker-web.preinst:
	phpunit2 release installation with rc for xdebug using pear channels

	* debian/poker-web.postrm, debian/poker-web.postinst:
	dbconfig for poker web database and currency

	* debian/poker-web.links: link to poker web schema

	* debian/poker-web.install:
	install is now cleanly grouped in directories instead of being manually handled by rules file

	* debian/poker-web.dirs: link to poker web schema

	* debian/poker-web.config: dbconfig for poker web database and currency

	* debian/control, debian/control.breezy, debian/control.dapper, debian/control.edgy, debian/control.etch, debian/control.hoary, debian/control.sarge, debian/control.unstable:
	dbconfig depends

	* debian/changelog: fix all debian bugs

	* database/schema.sql.in:
	skin_image is a text instead of blob because it's a lot easier to handle in various languages
	upcase all SQL keywords

	* database/1.0.30-1.0.31.sql:
	skin_image is a text instead of blob because it's a lot easier to handle in various languages

	* conf/poker.bot.xml.in:
	POKER_WWW_HOST replaces POKER_SERVER_HOST for the web part

	* configure.ac: pokerweb address
	pokerweb constants file change

	* Makefile.am: pokerweb subdir

2006-11-29  Loic Dachary  <loic@dachary.org>

	* pokerweb/conf/apache.conf, pokerweb/conf/constants.php.in, pokerweb/conf/constants_test.php, pokerweb/conf/htaccess, pokerweb/database/schema.sql, pokerweb/pages/cash_in.php, pokerweb/pages/cash_in_one.php, pokerweb/pages/cash_in_two.php, pokerweb/pages/cash_out.php, pokerweb/pages/cash_out_one.php, pokerweb/pages/cash_out_two.php, pokerweb/pages/class.poker.php, pokerweb/pages/common.php, pokerweb/pages/constants.php.ref.in, pokerweb/pages/create_account.php, pokerweb/pages/currency.php, pokerweb/pages/currency_one.php, pokerweb/pages/currency_test_one.php, pokerweb/pages/currency_test_two.php, pokerweb/pages/currency_two.php, pokerweb/pages/default-image.jpg, pokerweb/pages/edit_account.php, pokerweb/pages/footer_default.php, pokerweb/pages/header_default.php, pokerweb/pages/image.php, pokerweb/pages/index.php, pokerweb/pages/lib_images.php, pokerweb/pages/login.php, pokerweb/pages/logout.php, pokerweb/pages/neteller.cfg, pokerweb/pages/neteller.py, pokerweb/pages/poker.php:
	complete rework

	* pokerweb/pages/tests/README, pokerweb/pages/tests/TestSuite.html, pokerweb/pages/tests/test-cash.html, pokerweb/pages/tests/test-create_account.html, pokerweb/pages/tests/test-edit_account.html, pokerweb/pages/tests/test-index.html, pokerweb/pages/tests/test-login.html:
	http://openqa.org/ selenium testsuite

2006-11-25  Loic Dachary  <loic@dachary.org>

	* debian/python-poker2d.install: include kde shortcuts

2006-11-21  Loic Dachary  <loic@dachary.org>

	* tests/test-servercrash.py.in: server recover from crash

	* tests/test-pokerclient.py.in:
	don't terminate connections in the test : the service does it
	test shutdown server while game running

	* pokernetwork/pokertable.py:
	ignore rebuy event in game history to avoid spurious error messages

	* pokernetwork/pokerservice.py:
	cleanupCrashedTables called before cleanup of temporary users
	call leavePlayer with currency_serial
	cleanUp must not delete user2table, cleanupCrashedTables does not
	leavePlayer grabs the player bet in addition to the money : may happen when the server crashes

	* debian/changelog: dbconfig-common switch

	* database/1.0.30-1.0.31.sql: update version number

	* configure.ac: server crash and recovery test case

	* pokernetwork/pokerservice.py:
	disconnectall before closing the database otherwise the tables don't get updated

2006-11-20  cpinson  <cpinson@call>

	* gentoo/dev-games/poker-network/poker-network-1.0.27.ebuild: down

	* gentoo/dev-games/poker-network/poker-network-1.0.30-r1.ebuild: up

2006-11-20  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokerdatabase.py:
	allow SQL upgrade scripts to touch the version

	* debian/python-poker-network.prerm: prerm needed for dbconfig-common

2006-11-19  Loic Dachary  <loic@dachary.org>

	* debian/rules: add gnome.mk

	* tests/run.in: test-pokerdisplay2d in XVFB

	* pokerclient2d/python-poker2d.desktop: add

	* pokerclient2d/Makefile.am: python-poker2d.desktop

	* debian/python-poker2d.install: desktop files

	* tests/test-pokerclient.py.in: comment every tests

	* tests/test-pokerclient.py.in: diagnostic

	* debian/python-poker-network.init: LSBize init script

	* debian/python-poker2d.install: add pixmaps to distribution

	* debian/python-poker2d.menu: python-poker2d is the package name

	* pokerclient2d/data/interface/pixmaps/poker2D_16.png, pokerclient2d/data/Makefile.am:
	add window icon in pixmap distribution directory

	* pokerclient2d/pokerinterface2d.py: set the icon of the window

	* pokerclient2d/poker2D_16.png: moved

	* pokerclient2d/Makefile.am:
	be specific about the png included in the distribution

2006-11-18  Loic Dachary  <loic@dachary.org>

	* pokerclient2d/Makefile.am:
	poker2D.xpm and poker2D-16.xpm for kde integration

	* pokerclient2d/poker2D-16.xpm, pokerclient2d/poker2D.xpm:
	poker2d pixmap

	* debian/python-poker2d.menu: poker2d menu for graphics

	* pokernetwork/pokerservice.py:
	PokerCards is needed for hand history evaluation

	* pokerui/pokerrenderer.py:
	allow batch mode while in batch mode. It may happen when a player gets
	disconnected and the destruction of partially constructed tables
	occur.

2006-11-17  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokerclient.py (PokerClientProtocol._handleConnection): 
	  don't run endState on PACKET_POKER_STATE if in state null because it
	  will fail to interpret the dealer position correctly.

	* tests/test-pokerclient.py.in:
	disconnectAll in teardown to avoid reactor leftover
	test case for processing hand / ready to play logic
	test case for autodeal_max

	* pokernetwork/pokertable.py: add serials in broadcast debug messages
	if time to next hand is greater than limit, cap it to autodeal_max

	* pokernetwork/pokerservice.py:
	shutdown deferred reset to false after launch
	set reactor delay to 1/100sec instead of 0 for code safeguard

	* pokernetwork/pokerclient.py, pokernetwork/pokeravatar.py:
	add serial in debug messages

	* pokernetwork/client.py: add serial when sending packets

	* pokerclient2d/Makefile.am: move xsl addition of hotkeys

	* Makefile.am: autodeal max add poker.server/1.0.30-1.0.31.xsl

2006-11-16  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokertable.py (PokerTable.scheduleAutoDeal): 
	  cap the autodeal delay to two minutes. Any client that slows
	  down the game by more than two minutes deserves to be listed
	  as not honouring the PROCESSING_HAND / READY_TO_PLAY protocol.

	* pokerclient2d/Makefile.am (nobase_dist_poker2d_DATA): 
	  upgrades/1.0.23-1.0.24.xsl

2006-11-14  Johan Euphrosine  <johan@mekensleep.com>

	* pokerclient2d/pokerdisplay2d.py (PokerTable2D.render): 
	* tests/test-pokerdisplay2d.py: 
	underline nickname when in position
	

2006-11-12  Loic Dachary  <loic@dachary.org>

	* conf/poker.bot.xml.in, conf/poker.client.xml.in, conf/poker.server.xml.in, examples/poker.bot.xml, examples/poker.server-monotone.xml, examples/poker.server.xml, pokerclient2d/client.xml, pokerclient2d/poker2d-test.xml, pokerclient2d/poker2d.xml.in, pokerui/pokerrenderer.py, tests/conf/poker.client.xml.in:
	version bump

	* tests/test-pokerclient.py.in:
	test06_cannotGetSeat: seatPlayer returns if seat number is invalid
	test07_rebuy(self): run rebuy

	* pokernetwork/pokertable.py:
	seatPlayer returns if seat number is invalid

	* pokernetwork/pokerclient.py: If the server says the player
	 rebuys, assume he knows that the player can rightfully do so and
	 therefore that the buy_in has already been paid. The client fail
	 to notice that a player already paid the buy_in when it connects
	 to a table on which said player has no chips in front of him.

2006-11-11  Loic Dachary  <loic@dachary.org>

	* pokernetwork/__init__.py, debian/changelog, ChangeLog, NEWS:
	version bump

2006-10-31  Loic Dachary  <loic@dachary.org>

        * Release 1.0.30

	* pokerclient2d/pokerdisplay2d.py (PokerDisplay2D.__init__): init the mixer only once

	* pokernetwork/protocol.py (UGAMEProtocol.unblock): trigger timer if queue is not empty

	* pokernetwork/pokerclient.py (PokerClientProtocol.publishPackets): avoid extra calls by
	  setting the timer only if necessary

2006-10-23  Cedric Pinson  <cpinson@freesheep.org>

        * Release 1.0.29

	* pokernetwork/pokerservice.py:
	* pokernetwork/pokerpackets.py:
	* pokerui/pokerrenderer.py:
	* tests/test-rank.py.in:
	Add a new packet sent at the end of tournament

2006-10-14  Loic Dachary  <loic@dachary.org>

        * Release 1.0.28

	* pokerclient2d/data/fonts/FreeSerif.ttf: replaces non-free neuropoli

2006-10-11  Loic Dachary  <loic@dachary.org>

        * Release 1.0.27

	* tests/test-pokercashier.py.in:
	test that getCurrencySerial discards third currency on error

	* pokernetwork/pokercashier.py:
	getCurrencySerial discards third currency on error

	* pokerweb/conf/htaccess:
	php_value error_reporting 2037 to reduce verbosity

2006-10-11  Loic Dachary  <loic@dachary.org>

	* pokerweb/conf/htaccess: php_value error_reporting 2037
	  to reduce verbosity

2006-10-01  Cedric Pinson  <cpinson@freesheep.org>

	* test/test-quit.py.in:
	Update the test to pass in handleMenu (it was missed)

	* Update gentoo package
	
2006-09-27  Johan Euphrosine  <johan@mekensleep.com>


	* tests/test-pokerinterface.py.in:
	added test case for bug #7085

	* pokernetwork/dispatch.py (EventDispatcher.publishEvent): 
	now check that at least one callback is registered before publishing
	
	* tests/test-upgrade.py.in: 
	added test case for failing CheckClientVersion

	* pokernetwork/upgrade.py: 
	failing upgrade now throw an UserWarning	

2006-09-26  Cedric Pinson  <cpinson@freesheep.org>

	* pokerui/pokerrenderer.py:
	Add pythonEvent to receive event from c++

	* test/test-quit.py.in:
	Test the quit fix

2006-09-22  Johan Euphrosine  <johan@mekensleep.com>

        * Release 1.0.26

	* pokerui/pokerrenderer.py:
	* tests/test-pokerrenderer.py.in:
	fixed tournaments_lobby_tabs_window and lobby_tab_window not correctly hidden
	tested state transition and correct PacketPokerInterfaceCommand reception
	renamed updateDecorations to updateInterfaceWindows	
	
2006-09-22  Loic Dachary  <loic@dachary.org>


	* tests/test-pokerservice.py.in: test setAccount function

	* pokernetwork/pokerservice.py: set affiliate indice when creating user

	* pokernetwork/pokerpackets.py: affiliate indice

	* database/schema.sql.in, database/1.0.25-1.0.26.sql: affiliate tables

	* Makefile.am: database migration to 1.0.26

2006-09-21  Loic Dachary  <loic@dachary.org>

	* conf/poker.client.xml.in, conf/poker.server.xml.in, examples/poker.bot.xml, examples/poker.server-monotone.xml, examples/poker.server.xml, pokerclient2d/Makefile.am, pokerclient2d/poker2d.xml.in, tests/conf/poker.client.xml.in, conf/poker.bot.xml.in:
	version update

2006-09-21  cpinson  <cpinson@call>

	* pokerui/pokerrenderer.py: change quit for QUIT

	* gentoo/dev-games/poker-network/poker-network-1.0.26.ebuild:
	upgrade gentoo package

2006-09-21  cpinson  <cpinson@call>

	* ChangeLog, pokerui/pokerrenderer.py:
	Fix bug when quitting in outfit editor
	and add events from c++ to pokerrenderer.py

2006-09-21  Loic Dachary  <loic@dachary.org>

	* pokerclient2d/Makefile.am: fetch khotkeys.py in the source directory

2006-09-21  cpinson  <cpinson@call>

	* ChangeLog, pokerui/pokerrenderer.py:
	Fix bug when quitting in outfit editor
	and add events from c++ to pokerrenderer.py

2006-09-21  Johan Euphrosine (proppy)  <proppy@aminche.com>

	* pokerclient2d/data/Makefile.am, pokerclient2d/data/fonts/neurpoli.ttf:
	added font

2006-09-20  Johan Euphrosine (proppy)  <proppy@aminche.com>

	* pokerclient2d/data/interface/interface.glade, pokerclient2d/lobby.c, pokerclient2d/tournaments.c:
	new interface

2006-09-19  Johan Euphrosine (proppy)  <proppy@aminche.com>

	* pokerui/pokerrenderer.py: new background window

	* pokerclient2d/data/interface/interface.glade: new interface.glade

	* pokerclient2d/tournaments.c, pokerclient2d/lobby.c: window placement

2006-09-18  Loic Dachary  <loic@dachary.org>

	* ChangeLog, Makefile.am, NEWS, debian/changelog, pokernetwork/__init__.py:
	version bump

	* poker-client-specs.odp: poker client specs

2006-09-16  Loic Dachary  <loic@dachary.org>

	* pokerweb/pages/neteller.py: check type and length of bank_acct_num

2006-09-16  Cedric Pinson  <cpinson@freesheep.org>

	* pokerrenderer.py:
	Add a python event call from the c++ to pass event game
	Fix the bug when the player want to quit and he is in the outfit editor

2006-09-16  Loic Dachary  <loic@dachary.org>

	* poker-client-specs.odp poker client specs draft document
	
2006-09-15  Loic Dachary  <loic@dachary.org>

        * Release 1.0.25

	* tests/upgrade-rsync: force automake1.9
	set pythonpath to use installed module instead of system ones

	* tests/Makefile.am: Add tests/test-pokerchildren.py

	* pokerui/pokerdisplay.py:
	implement sensible init and render function (quit when received QUIT)

	* pokernetwork/upgrade.py: added verbosity in upgrade function

	* pokernetwork/pokerclient.py:
	cope with lack of underware member of display in upgrades
	added verbosity in upgrade function

	* pokernetwork/pokerchildren.py: s/poker3drc/pokerrc/
	set the target variable for GNU/Linux based upgrades
	implement a default text based line callback

	* pokerclient2d/poker2d.py:
	fully implement batch mode (only upgrades), for testin purpose
	main function (run) has fixed list of arguments for clarity

	* pokerclient2d/poker2d-test.xml, pokerclient2d/client.xml:
	version bump

	* pokerclient2d/Makefile.am:
	use pythondir instead of pyexecdir to avoir architecture dependent installation on architecture independant scripts

	* configure.ac: Add tests/test-pokerchildren.py

	* Makefile.am:
	use pythondir instead of pyexecdir to avoir architecture dependent installation on architecture independant scripts

	* pokerclient2d/poker2d.in: usage help

2006-09-14  Loic Dachary  <loic@dachary.org>

	* pokerclient2d/poker2d.xml.in: no MAYBE_PYTHON_VERSION

	* pokernetwork/upgrade.py: use platform.system

	* pokerclient2d/poker2d.py: add missing import platform

2006-09-14  Jerome Jeannin  <griim@mekensleep.com>

	* pokernetwork/protocol.py: ajusted verbosity level

2006-09-13  Johan Euphrosine  <johan@mekensleep.com>

	* pokerui/pokerrenderer.py: decreased verbosity of chatFormatMessage

2006-09-13  Jerome Jeannin  <griim@mekensleep.com>

	* tests/test-protocol.py.in: added verbosity control

	* tests/coverage.py: updated to 2.6

        * pokernetwork/protocol.py: fix some verbosity control

2006-09-12  Loic Dachary  <loic@dachary.org>

	* tests/conf/poker.client.xml.in, pokerclient2d/poker2d.xml.in, examples/poker.bot.xml, examples/poker.server-monotone.xml, examples/poker.server.xml:
	version bump

	* conf/poker.bot.xml.in, conf/poker.client.xml.in, conf/poker.server.xml.in:
	version bump

	* tests/test-protocol.py.in: emacs compile macro

	* debian/control.etch, debian/control.edgy: edgy & etch

2006-09-11  Jerome Jeannin  <griim@mekensleep.com>

	* tests/test-protocol.py: removed test-protocol.py

2006-09-09  Loic Dachary  <loic@dachary.org>

	* debian/po/fr.po: updates from Thomas Huriaux

2006-09-08  Jerome Jeannin  <griim@mekensleep.com>

	* tests/test-protocol.py: protocol.py unittest

2006-09-07  Loic Dachary  <loic@dachary.org>

	* ChangeLog, NEWS, debian/changelog, pokerclient2d/poker2d-test.xml, pokernetwork/__init__.py:
	version bump

2006-09-07  Loic Dachary  <loic@dachary.org>

	* pokernetwork/protocol.py:
	don't rely on the packet length if the packet type is incorrect

2006-09-05  Loic Dachary  <loic@dachary.org>

	* debian/control.breezy, debian/control.dapper, debian/control.hoary:
	ubuntu uses alsa instead of all

2006-09-05  Loic Dachary  <loic@dachary.org>

	* Release 1.0.24

	* pokernetwork/pokerservice.py: print when updating tourney schedule

	* pokernetwork/pokerservice.py: show prize money

	* pokernetwork/pokerservice.py:
	import missing DEFAULT_PLAYER_USER_DATA from pokeravatar

2006-09-04  Loic Dachary  <loic@dachary.org>

	* pokerclient2d/Makefile.am, pokerclient2d/upgrades/1.0.23-1.0.24.xsl:
	Add default keyboard shortcuts to existing poker2d.xml files

	* pokerclient2d/Makefile.am: use datadir variable

2006-09-04  Loic Dachary  <loic@dachary.org>

	* pokerclient2d/Makefile.am: distribute khotkeys.py

	* pokerclient2d/data/interface/interface.glade:
	button dedicated to keyboard shortcuts

	* pokerclient2d/pokerinterface2d.py: keep the window in a member

	* pokerclient2d/pokerdisplay2d.py:
	special buttons for hardcoded raise amounts, used for keyboard shortcuts

	* pokerclient2d/poker2d.xml.in: hotkeys definitions

	* pokerclient2d/poker2d.khotkeys: raise variations

	* pokerclient2d/poker2d-test.xml: hotkeys

	* pokerclient2d/client.xml: version bump

	* pokerclient2d/Makefile.am: khotkeys for KDE

	* examples/poker.server.xml: micro limit table

	* examples/poker.server-monotone.xml: version bump

	* examples/poker.bot.xml: no limit bots

	* conf/poker.server.xml.in, conf/poker.client.xml.in, conf/poker.bot.xml.in:
	version bump

2006-09-03  Loic Dachary  <loic@dachary.org>

	* pokerclient2d/poker2d.khotkeys:
	khotkeys KDE input actions bindings for poker2d

	* debian/python-poker2d.postinst:
	Try to update the kde khotkeys of the currently running session
	so that the user can use it right away.

	* pokerclient2d/poker2d.xml.in:
	accelerators and kde hotkeys specifications added

	* pokerclient2d/khotkeys.py:
	Build a khotkeys (KDE) file from the key binding
	specifications of poker2d.xml.in

2006-09-01  Loic Dachary  <loic@dachary.org>

	* pokernetwork/__init__.py: bump version

2006-09-01  Loic Dachary  <loic@dachary.org>

	* configure.ac: /usr/sbin is not standard on fc5

2006-08-31  cpinson  <cpinson@call>

	* pokerui/pokerrenderer.py: Change message when not enough money

2006-08-30  cpinson  <cpinson@call>

	* Release 1.0.23

	* pokerui/pokerrenderer.py:
	Fix the interface problem when removing the interface cache

2006-08-30  Loic Dachary  <loic@dachary.org>

	* configure.ac: poker2d datadir is a subdir of poker-network

2006-08-30  cpinson  <cpinson@call>

	* pokerclient2d/data/interface/interface.glade: Fix typo in cashier

2006-08-30  Cedric Pinson  <cpinson@freesheep.org>

	* fix typo in cashier panel
	* fix interface tabs

2006-08-28  Cedric Pinson  <cpinson@freesheep.org>

	* pokerclient2d/lobby.c, pokerclient2d/tournaments.c, 
	pokerui/pokerinterface.py, pokerui/pokerrenderer.py

	Add tunable money in lobby and tournament panel

2006-08-26  Loic Dachary  <loic@dachary.org>

	* pokernetwork/protocol.py:
	Only launch the timer if poll AND queue (not OR)

	* HACKING: Full rewrite

2006-08-23  Johan Euphrosine (proppy)  <proppy@aminche.com>

	* pokerui/pokerrenderer.py: fixed pokerchatwords bug

	* tests/test-pokerinteractor.py.in, tests/test-pokerrenderer.py.in:
	fixed test

	* tests/test-pokerinteractor.py.in, tests/test-pokerrenderer.py.in:
	reenabled test

	* tests/test-pokerrenderer.py.in: fix for pokerchatword bug

2006-08-23  Loic Dachary  <loic@dachary.org>

	* pokerui/pokerrenderer.py: use muck show / hide functions

2006-08-23  Loic Dachary  <loic@dachary.org>

	* pokerui/pokerinterface.py: muck show / hide functions

	* pokerclient2d/muck.c: show / hide functions

2006-08-23  Johan Euphrosine (proppy)  <proppy@aminche.com>

	* configure.ac, tests/Makefile.am, tests/test-pokerrenderer.py.in:
	test for chatFormatMessage bug

2006-08-23  Loic Dachary  <loic@dachary.org>

	* pokerclient2d/client.xml, examples/poker.bot.xml, examples/poker.server-monotone.xml, examples/poker.server.xml, conf/poker.bot.xml.in, conf/poker.client.xml.in, conf/poker.server.xml.in:
	version bump

2006-08-23  Cedric Pinson  <cpinson@freesheep.org>

	* cashier.c, client.xml, data/interface/interface.glade:
	Now we can change the name of money in cashier

	* chat.c, data/interface/interface.glade:
	Fix chat color and change message muck loosing hand to always muck

2006-08-23  Cedric Pinson  <cpinson@freesheep.org>

	* pokerclient2d/chat.c, pokerclient2d/data/interface/interface.glade:
	Fix chat color and change message muck loosing hand to always muck

2006-08-21  Loic Dachary  <loic@dachary.org>

	* database/1.0.22-1.0.23.sql:
	Counter can hold application_data (may be the application transaction id)

	* tests/conf/poker.client.xml.in, pokerclient2d/poker2d.xml.in: 1.0.23

	* database/schema.sql.in:
	In counter add  application_data VARCHAR(255) DEFAULT '' NOT NULL,

	* pokernetwork/pokercashier.py: Add missing application_data fields

	* tests/test-pokercashier.py.in: Add cashQuery tests

	* pokernetwork/pokerpackets.py, pokernetwork/pokerservice.py:
	cashQuery forward to pokercashier equivalent method

	* pokernetwork/pokerpackets.py:
	application_data added to money transfert packets + cash_query packet to query the status of transactions

	* pokernetwork/pokeravatar.py: handle CASH_QUERY packet

2006-08-21  Johan Euphrosine  <johan@mekensleep.com>

	* Makefile.am:
	fixed typo 1.0.21-1.1.23.sql to 1.0.22-1.1.23.sql
	* configure.ac: 
	* tests/Makefile.am (TESTS): 
	* tests/test-pokerinteractor.py.in (PokerInteractorTestCase.test_highestBetIncrease):
	added testCase to reproduce this bug : highestBetIncrease should cancel all interactor but fold
	* pokerui/pokerrenderer.py (PokerInteractors._handleConnection): 
	fixed scheduled fold bug

2006-08-21  Loic Dachary  <loic@dachary.org>

	* database/1.0.22-1.0.23.sql: ;

	* Makefile.am: 1.0.23 sql upgrades

2006-08-21  Loic Dachary  <loic@dachary.org>

	* database/1.0.22-1.0.23.sql:
	Avoid stupid errors by making currencies serial unique
	
	* configure.ac:
	Bark if pokerconfigupgrade is not found because the consequences are hard
	to decipher later on.
	https://gna.org/support/index.php?func=detailitem&item_id=1182

2006-08-18  Loic Dachary  <loic@dachary.org>

	* Release 1.0.22

	* pokernetwork/pokerservice.py:
	    def leavePlayer(self, serial, table_id, currency_serial):
	more appropriate than
	    def leavePlayer(self, serial, table_id, money):

	* pokerclient2d/data/interface/interface.glade:
	show two digits in raise sliders

	* pokernetwork/pokerpackets.py:
	use str instead of % in PacketPokerMuckRequest to avoid break if more than one element and tuple

	* pokernetwork/pokertable.py:
	delayedActions -> call leavePlayer with currency_serial instead of money

	* pokernetwork/pokerservice.py: s/fisr/firs/

	* pokernetwork/pokerpackets.py: PacketPokerPersonalInfo s/sef/self/

	* database/1.0.21-1.0.22.sql: add trailing ;

	* pokerui/pokerrenderer.py:
	updateCashier add firstname, lastname and addr_street2

	* pokerweb/pages/edit_account.php, pokerweb/pages/create_account.php:
	add firstname, lastname and addr_street2

	* pokernetwork/pokerservice.py: set/get personal info
	add firstname, lastname and addr_street2

	* pokernetwork/pokerpackets.py:
	PacketPokerPersonalInfo add firstname, lastname and addr_street2

	* database/1.0.21-1.0.22.sql, database/schema.sql.in:
	in users_private, add firstname, lastname and addr_street2

2006-08-16  Loic Dachary  <loic@dachary.org>

	* ChangeLog, pokerclient2d/poker2d-test.xml, pokernetwork/pokerchildren.py, pokerweb/pages/currency.php, tests/testcurrency.php.in:
	check note bug

2006-08-16  proppy  <proppy@allin>

	* ChangeLog: updated Changelog

	* ChangeLog, pokernetwork/upgrade.py:
	update self.version_compare, to always compare against greater version, instead of assuming that we receive versions in an increasing order.

2006-08-14  izidor79  <izidor79@allin>

	* pokerui/pokerrenderer.py: requestBuyIn(), money_cashier[0]

2006-07-27  Loic Dachary  <loic@dachary.org>

	* pokerweb/pages/currency.php: all if with {} to cope with xdebug bug

	* pokerweb/pages/currency.php:_check_note: use rowid instead of count(*) otherwise mysql_affected_rows always returns true.

	* examples/poker.bot.xml: More bots.

	* pokerweb/pages/cash_in_two.php: Fix error handling.

	* pokernetwork/pokerbot.py: dont stop reactor if it's not running.

	* pokerweb/pages/currency.php: count=1 by default

2006-07-27  Johan Euphrosine  <johan@mekensleep.com>

	* pokernetwork/upgrade.py (CheckClientVersion.line): 
	update self.version_compare, to always compare against greater version, instead of assuming that we receive versions in an increasing order.

2006-07-27  Loic Dachary  <loic@dachary.org>

	* pokerweb/pages/cash_out_two.php: Don't use secure id.

	* debian/poker-web.install: neteller scripts example

	* debian/control.dapper, debian/control.hoary, debian/control.sarge, debian/control.unstable, debian/control.breezy, debian/control:
	add php-mysql depend on poker-web

	* conf/poker.bot.xml.in, examples/poker.bot.xml: bot need autocommit

	* pokerweb/pages/cash_out_two.php: Cashout error report fixes.

	* pokernetwork/server.py:
	Wrap packet handling in try / except. unblock() if exception to avoid infinite loop. Facility to avoid exception in test conditions.

	* pokernetwork/protocol.py:
	Connection lost message only displayed in very high verbosity mode.

	* pokernetwork/pokercashier.py:
	Remove extra cashout that breaks it all.

	* configure.ac, tests/Makefile.am: test-clientserver.py

	* tests/test-clientserver.py.in:
	Test script dedicated to client / server and protocol.

	* tests/test-clientserver.py.in, ChangeLog: *** empty log message ***

2006-07-27  Loic Dachary  <loic@dachary.org>

	* pokerweb/pages/cash_out_one.php: verbose high

	* pokerui/pokerrenderer.py: Import all types.
	Map money serial to name.
	Currency serial always stored as an int.
	currencySerial2Name function to map currency serial to symbolic names with 0 mapped to empty string.

	* pokerclient2d/tournaments.c, pokerclient2d/lobby.c:
	Use symbolic names.

	* pokerui/pokerrenderer.py:
	currency_serial converted to string for interface

2006-07-26  Cedric Pinson  <cpinson@allin>

	* pokerclient2d/lobby.c, pokerclient2d/tournaments.c:
	fix the string to update the toogle button all/money_one/money_two

2006-07-26  Loic Dachary  <loic@dachary.org>

	* pokerui/pokerrenderer.py:
	currency_serial converted from money_one / money_two

	* pokernetwork/pokercashier.py:
	subtrac the amount from the player money

	* tests/test-xmlrpc.py.in: cashOut tests

	* pokerweb/pages/cash_out_two.php, pokerweb/pages/cash_out_one.php:
	bserial is the serial for notes

	* pokernetwork/pokercashier.py: cashOutCollect verbosity improved.

	* pokerclient2d/poker2d-test.xml: alternate web configuration

	* pokernetwork/pokeravatar.py:
	cash_out_commit may be invoked by anyone.

	* pokernetwork/pokeravatar.py: has attr

	* pokerweb/pages/cash_out_one.php: *** empty log message ***

	* pokerweb/pages/currency.php: put_note command

	* pokernetwork/protocol.py: kill comment

	* pokernetwork/pokerservice.py:
	It's ok for cashout commit to alter zero rows or exactly one.

	* pokernetwork/pokeravatar.py: packet for cashout instead of serial

	* tests/test-pokerservice.py.in: cashOut tests

	* pokerweb/pages/neteller.py: error formating

2006-07-26  Cedric Pinson  <cpinson@allin>

	* pokerweb/pages/neteller.py: add error message

2006-07-26  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokerpackets.py: cast pokermoney fields to proper type

	* pokerui/pokerrenderer.py:
	handleLobby : used state_tournaments instead of state_lobby
	queryLobby and queryTouranments : get currency_serial from state
	showLobby & showTournaments : self.state_{lobby,tournaments} is updated with type

	* pokernetwork/pokerservice.py: cast currency_serial to int

2006-07-25  Loic Dachary  <loic@dachary.org>

	* pokernetwork/server.py:
	connectionLost : process all pending packets before destroying the avatar. This is specially important when a client sends PACKET_QUIT because it is handle differently from a lost connection.

	* pokernetwork/pokerdatabase.py: don't traceback user creation <= 3

	* tests/test-pokerclient.py.in: *** empty log message ***

	* pokernetwork/server.py:
	Initial packets may be bufferized (as in client since it became an async service).

	* pokernetwork/protocol.py: canHandlePacket returns pair.
	triggerTimer function schedule the unqueuing of the packets.
	pushPacket invokes triggerTimer for bootstraping purposes

	* pokernetwork/server.py:
	Handle bufferized_packets when the protocol is established.

	* pokernetwork/client.py:
	Call the established deferrred before any bufferized packet is invoked.

	* pokerweb/pages/class.poker.php: Debuging tip.

	* pokerweb/pages/index.php: Show errors occuring at login time.

	* pokerweb/pages/currency.php:
	Autocommit must set valid to 'y' right away.

	* pokernetwork/pokerservice.py: Report XMLRPC result if verbose.
	Fix numeric map key entries into strings.

	* pokernetwork/currencyclient.py: Differentiate error handling.

	* pokernetwork/server.py:
	The server polls so that it can handle async packets.

	* pokernetwork/pokerservice.py:
	convert the key into string : SOAPpy expects array indices to be strings

	* ChangeLog: *** empty log message ***

	* debian/rules: no need to compile static extensions

	* pokernetwork/server.py:
	Block while handling a packets (incoming packets are batched).

	* pokerweb/pages/currency.php: currency

	* configure.ac: subst mysql

	* debian/python-poker-network.postinst: pycentral doubled call

	* configure.ac: remove confusing SQL order

	* pokernetwork/pokerdatabase.py: check that server version is >= 5

	* pokernetwork/pokerdatabase.py: *** empty log message ***

	* pokernetwork/pokerdatabase.py: verbose

	* pokernetwork/pokerdatabase.py: no password function

	* pokernetwork/pokerdatabase.py:
	Grand all privileges on a given database so that upgrades are possible.

	* pokernetwork/server.py:
	No packet may be received while sending the answer to a previous packet.

	* tests/test-pokerservice.py.in: Test points.

	* pokerweb/pages/currency.php: Implement autocommit for get_note.

	* pokernetwork/pokerservice.py: Add verbosity for SQL orders.
	Implement points.
	Fix getPersonalInfo that did not transmit money.

2006-07-24  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokerpackets.py: user info returns points too
	fix money_transfert bug in setting bserial

	* pokernetwork/pokerbot.py: Implement note generator.
	CashIn currency one before sitting.

	* pokerclient2d/poker2d-test.xml: test url

	* examples/poker.bot.xml, conf/poker.bot.xml.in: currency server url

	* configure.ac:
	wget is used to get play money directly from the currency server for bots

	* pokernetwork/pokerclient.py, pokernetwork/pokertable.py, pokerui/pokerrenderer.py:
	table selection

	* tests/test-xmlrpc.py.in: xmlrpc

	* tests/run.in: true

2006-07-24  proppy  <proppy@allin>

	* ChangeLog: updated changelog

	* tests/run.in: fixed mysql

	* tests/test-xmlrpc.py.in: fixed test

	* tests/test-xmlrpc.py.in: fixed hasattr

	* tests/test-xmlrpc.py.in: fixed else if

	* tests/test-xmlrpc.py.in: fixed twisted 2.2 compat issue

2006-07-24  Loic Dachary  <loic@dachary.org>

	* debian/rules: call autotools with proper version

2006-07-24  proppy  <proppy@allin>

	* database/1.0.20-1.0.21.sql: remove old scrip

	* database/1.0.21-1.0.22.sql, Makefile.am: added migration sql

	* Makefile.am: added config

2006-07-24  Loic Dachary  <loic@dachary.org>

	* debian/control.breezy, debian/control.dapper, debian/control.hoary, debian/control.sarge:
	gtk python dependency

	* debian/control.unstable: gtk

	* debian/changelog, debian/control, debian/control.breezy, debian/control.dapper, debian/control.hoary, debian/control.sarge, debian/control.unstable, debian/python-poker-network.init, debian/python-poker2d.install, examples/poker.bot.xml, examples/poker.server-monotone.xml, examples/poker.server.xml, pokerclient2d/client.xml, pokerclient2d/poker2d-test.xml, pokerclient2d/poker2d.xml.in, pokerclient2d/pokerinterface2d.py, pokernetwork/__init__.py, tests/conf/poker.client.xml.in, ChangeLog, NEWS, conf/poker.bot.xml.in, conf/poker.client.xml.in, conf/poker.server.xml.in:
	fix packaging bugs

2006-07-24  Cedric Pinson  <cpinson@allin>

	* pokerui/pokeranimation.py: remove old comment

2006-07-24  proppy  <proppy@allin>

	* upgrades/poker.client/1.0.21-1.0.22.xsl: added xsl

2006-07-24  Loic Dachary  <loic@dachary.org>

	* Makefile.am: missing neteller

	* debian/control, debian/control.breezy, debian/control.dapper, debian/control.hoary, debian/control.sarge, debian/control.unstable, debian/rules:
	fix control files for all distributions

2006-07-24  proppy  <proppy@allin>

	* ChangeLog: updated changelog

	* tests/run.in: fixed mysql

	* tests/test-xmlrpc.py.in: fixed test

	* tests/test-xmlrpc.py.in: fixed hasattr

	* tests/test-xmlrpc.py.in: fixed else if

	* tests/test-xmlrpc.py.in: fixed twisted 2.2 compat issue

2006-07-24  Loic Dachary  <loic@dachary.org>

	* debian/rules: call autotools with proper version

2006-07-24  proppy  <proppy@allin>

	* database/1.0.20-1.0.21.sql: remove old scrip

	* database/1.0.21-1.0.22.sql, Makefile.am: added migration sql

	* Makefile.am: added config

2006-07-24  Loic Dachary  <loic@dachary.org>

	* debian/control.breezy, debian/control.dapper, debian/control.hoary, debian/control.sarge:
	gtk python dependency

	* debian/control.unstable: gtk

	* debian/changelog, debian/control, debian/control.breezy, debian/control.dapper, debian/control.hoary, debian/control.sarge, debian/control.unstable, debian/python-poker-network.init, debian/python-poker2d.install, examples/poker.bot.xml, examples/poker.server-monotone.xml, examples/poker.server.xml, pokerclient2d/client.xml, pokerclient2d/poker2d-test.xml, pokerclient2d/poker2d.xml.in, pokerclient2d/pokerinterface2d.py, pokernetwork/__init__.py, tests/conf/poker.client.xml.in, ChangeLog, NEWS, conf/poker.bot.xml.in, conf/poker.client.xml.in, conf/poker.server.xml.in:
	fix packaging bugs

2006-07-24  Cedric Pinson  <cpinson@allin>

	* pokerui/pokeranimation.py: remove old comment

2006-07-24  proppy  <proppy@allin>

	* upgrades/poker.client/1.0.21-1.0.22.xsl: added xsl

2006-07-24  Loic Dachary  <loic@dachary.org>

	* Makefile.am: missing neteller

	* debian/control, debian/control.breezy, debian/control.dapper, debian/control.hoary, debian/control.sarge, debian/control.unstable, debian/rules:
	fix control files for all distributions

2006-07-23  Loic Dachary  <loic@dachary.org>

	* pokerweb/pages/prototype.js: end line

	* debian/control.unstable: unstable update

	* examples/poker.server-monotone.xml, conf/poker.server.xml.in, examples/poker.server-cygwin.xml:
	cashier parameters

	* tests/test-xmlrpc.py.in, tests/test-pokerservice.py.in, tests/test-pokerdatabase.py.in, tests/test-pokerclient.py.in, tests/test-pokercashier.py.in:
	Don't use autoconf substituted values for database host / user / password. Use hardcoded values common to all tests instead.

	* tests/run.in:
	Skip and succeed if mysql admin is not set to root no password.

	* tests/createdatabase: Don't hand alter mysql database tables.

	* tests/Makefile.am: remove phpunit leftovers when clean

	* pokernetwork/pokerdatabase.py: password is crypted

	* examples/test-pokerweb:
	Don't try to be smart with mysql root password.

	* debian/po/cs.po, debian/po/fr.po, debian/po/templates.pot:
	update from templates

	* debian/rules: run tests and set the root user and password.

	* debian/python-poker-network.postinst: Set the root user and password.

	* debian/poker-web.preinst:
	Dont reload apache, it will be done in postinst.

	* Makefile.am: Add missing files and sort them in pokernetwork.

2006-07-22  Loic Dachary  <loic@dachary.org>

	* ChangeLog, pokerweb/conf/bank_configuration.php, pokerweb/conf/currency_configuration.php, pokerweb/pages/icurrency.php:
	1.0.21 final

	* Makefile.am: Remove python_version file.

	* tests/test-pokerdatabase/0.0.0-0.0.1.sql: *** empty log message ***

	* tests/conf/poker.client.xml.in: version

	* tests/conf/client.xml: money_*

	* tests/test-xmlrpc.py.in: xmlrpc server access

	* tests/test-pokerservice.py.in: Split pokerservice tests and fix path.

	* tests/test-pokernetworkconfig.py.in: *** empty log message ***

	* tests/test-pokerlock.py.in: increase locker verbosity for diag

	* pokernetwork/pokerdatabase.py:
	dbapi is no longer used, home made asynchronous queries

	* tests/test-pokerdatabase.py.in: dbpool no longer in use

	* tests/test-pokerclient.py.in: run all tests

	* tests/test-currencyclient.py.in: Break notes.

	* tests/run.in: Replace vnc with xvfb.
	Add phpunit tests handling.

	* tests/poker.server.xml: mysql command

	* tests/Makefile.am: More tests.

	* pokernetwork/pokerpackets.py:     # self.money index constants

	* pokerui/pokerrenderer.py:
	PokerRenderer custom_money attribute is replaced by money_one & money_two information read from the configuration file.
	The pokerclient play_money field is replaced by the user_info field that holds all informations about the currencies available to the user.
	The requestBuyIn method is rewritten to use the money fields in accordance with the currency required by the table.
	The handleMeny method redirects the cash_in / cash_out menus to the web.
	The queryLobby and queryTournaments methods use money_one / two instead of custom money.
	The saveLobbyState (&tournament) method saves currency_serial instead of custom_money.

	* pokerui/pokerinterface.py: custom_money replaced with currency_serial

	* pokernetwork/server.py:
	sendPacket method that handles either packets (sent right away) or deferred that will be triggered at a later time.

	* pokernetwork/protocol.py:
	poll_frequency can be set instead of being hard coded to 0.01 sec.
	factory field always set even if to None.
	connectionLost prints if verbosity set.
	portocol invalid parameters better was bugous and is now replaced with different (may be worse ;-).
	fix _handleConnection prototype because it's used in tests.
	_handleVersion special case when newline in the first three chars

	* pokernetwork/pokerservice.py:
	cashOutCommit to validate a cashout request

	* pokernetwork/pokerserver.py:
	Split into files : pokeravatar.py, pokercashier.py, pokerdatabase.py, pokerlock.py, pokerservice.py, pokertable.py

	* pokernetwork/pokerserver.in: Remove useless pythonpath.

	* pokernetwork/pokerpackets.py: Update copyrights.
	TABLE_SELECT : query string hold the currency serial instead of the custom_money y/n flag.
	PLAYER_ARRIVE : bugous ternary replaced with a regular if on seat number.
	USER_INFO : remove the *_money fields and replace with the money list
	TOURNEY : replace custom_money with currency_serial
	PacketPokerMoneyTransfert, CASH_IN, CASH_OUT, CASH_OUT_COMMIT, RAKE packets

	* pokernetwork/pokerdatabase.py:
	Allow for asynchronous db requests thru adbapi.
	Create database, tables and user when the database root password is valid so that setup is made easier.
	Stricter upgrade file searching (.sql in the last 4 letters) to avoid confusion.
	MySQL command is not hard wired but read from the configuration file.

	* pokernetwork/pokerclient.py:
	Avoid strange emacs indent problem by adding leading py-indent-offset.
	Update copyright.
	PLAYER_INFO AND USER_INFO are outbound packets.
	packetDeferred method : allow for a callback to be fired once when a packet of a given type and for a given table is received. Allow for implementation of fibers / continuations in packet handling.
	New field : user_info very redundant with player_info.
	Update the pokergame instance when POKER_RAKE is received.
	Do not generate SELF_IN_POSITION packets when autopaying the blinds.
	protocolInvalid calls parent method.
	Replace False boolean expressions with not.

	* pokernetwork/pokerbot.py: Update copyright.

	* pokernetwork/pokerbot.in: Remove useless pythonpath.

	* pokernetwork/pokeravatar.py: Extracted from pokerserver.

	* pokernetwork/packets.py: Avoid harmless python name clashes.
	Handle gracefully __eq__ with heterogeneous types.

	* pokernetwork/client.py:
	Trigger deferred when the connection is established and when it is lost.

	* pokernetwork/__init__.py: protocol version changed

	* pokerclient2d/lobby.c, pokerclient2d/tournaments.c:
	play_money -> money_one, custom_money -> money_two

	* pokerclient2d/python.c:
	build interface function name based on python version and compile time macros

	* pokerclient2d/pokerinterface2d.py:
	Load the C module with python version prefix if appropriate, with fallback to unversioned.

	* pokerclient2d/poker2d.xml.in: currency_serial instead of custom_money

	* pokerclient2d/poker2d.in: no version

	* configure.ac: poker2d not versioned

	* pokerclient2d/poker2d-test.xml: default web for tests moved

	* pokerclient2d/poker2D.ico: poker2d icons for menus

	* pokerclient2d/menu.c: branch the cash-in / cash-out menu entries

	* pokerclient2d/client.xml:
	money* elements to describe the supported currencies

	* pokerclient2d/cashier.c:
	play_money -> money_one, custom_money -> money_two

	* pokerclient2d/data/interface/interface.glade:
	Add cash-in & cash-out menu entries.

	* pokerclient2d/Makefile.am: Update copyrights.
	Per python version interface module.

	* examples/poker.bot.xml, examples/poker.server-cygwin.xml, examples/poker.server-monotone.xml, examples/poker.server.xml:
	new database element parameters

	* debian/python-poker-network.config, debian/python-poker-network.dirs, debian/python-poker-network.init, debian/python-poker-network.install, debian/python-poker-network.postinst, debian/python-poker-network.postrm, debian/python-poker-network.preinst, debian/python-poker-network.templates, debian/python-poker2d.install, debian/python-poker2d.postinst, debian/rules, debian/rules.mk:
	remove python versions and invoque pycentral first in postinst

	* debian/poker-web.preinst:
	Attempt to install phpunit & xdebug using pear and pecl.

	* debian/control: python new policy, package are not versionned

	* debian/changelog: new python policy

	* debian/changelog, debian/pycompat: pycentral

	* database/schema.sql.in: switch all tables to InnoDB for transactions.
	table server : no money generator paradigm.
	table users : money amounts are stored in other tables.
	table user2money : per currency amounts for each player.
	table currencies : one entry per cash generator (pokerweb/pages/currency.php)
	table safe : notes from various currencies owned by the server.
	table counter : notes being cashed in or out but not yet commited
	table user2table : kill the custom_money switch
	table pokertables : the currency serial is added
	table tourneys,tourneys_schedule : currency_serial replaces custom_money flag
	table users_transaction : user chips exchanges.

	* database/pokerdatabaseupgrade.in: Fix coding typo + trash pythonpath

	* database/1.0.20-1.0.21.sql: *** empty log message ***

	* config/python.m4, config/ccpython.m4:
	copy from pypoker-eval for multiple python interpreter support

	* conf/poker.server.xml.in: s/custom_money/currency_serial/
	root_user & root_password & command added to the database element

	* conf/poker.client.xml.in: s/custom_money/currency_serial/

	* conf/poker.bot.xml.in: 1.0.21

	* poker-network.pc.in: Remove obsolete pythonpath and version suffix.

	* configure.ac: Replace vnc with Xvfb.
	pokerconfigupgrade does not have a versionned name.
	Remove python version tweaks. Keep pkg* variables substitutions.
	--with-poker-dbroot & --with-poker-dbroot-password flags added.
	Shorter mysql related message at the end of the script (because pokerdatabase does more automagic).

2006-07-21  Loic Dachary  <loic@dachary.org>

	* Makefile.am: SQL schema migration + pokerserver splitted files

2006-07-22  Loic Dachary  <loic@dachary.org>

	* Makefile.am: Remove python_version file.

	* tests/test-pokerdatabase/0.0.0-0.0.1.sql: *** empty log message ***

	* tests/conf/poker.client.xml.in: version

	* tests/conf/client.xml: money_*

	* tests/test-xmlrpc.py.in: xmlrpc server access
	fixed twisted 2.2 compat issue

	* tests/test-pokerservice.py.in: Split pokerservice tests and fix path.

	* tests/test-pokernetworkconfig.py.in: *** empty log message ***

	* tests/test-pokerlock.py.in: increase locker verbosity for diag

	* pokernetwork/pokerdatabase.py:
	dbapi is no longer used, home made asynchronous queries

	* tests/test-pokerdatabase.py.in: dbpool no longer in use

	* tests/test-pokerclient.py.in: run all tests

	* tests/test-currencyclient.py.in: Break notes.

	* tests/run.in: Replace vnc with xvfb.
	Add phpunit tests handling.
	Add mysql currency test account creation

	* tests/poker.server.xml: mysql command

	* tests/Makefile.am: More tests.

	* pokernetwork/pokerpackets.py:     # self.money index constants

	* pokerui/pokerrenderer.py:
	PokerRenderer custom_money attribute is replaced by money_one & money_two information read from the configuration file.
	The pokerclient play_money field is replaced by the user_info field that holds all informations about the currencies available to the user.
	The requestBuyIn method is rewritten to use the money fields in accordance with the currency required by the table.
	The handleMeny method redirects the cash_in / cash_out menus to the web.
	The queryLobby and queryTournaments methods use money_one / two instead of custom money.
	The saveLobbyState (&tournament) method saves currency_serial instead of custom_money.

	* pokerui/pokerinterface.py: custom_money replaced with currency_serial

	* pokernetwork/server.py:
	sendPacket method that handles either packets (sent right away) or deferred that will be triggered at a later time.

	* pokernetwork/protocol.py:
	poll_frequency can be set instead of being hard coded to 0.01 sec.
	factory field always set even if to None.
	connectionLost prints if verbosity set.
	portocol invalid parameters better was bugous and is now replaced with different (may be worse ;-).
	fix _handleConnection prototype because it's used in tests.
	_handleVersion special case when newline in the first three chars

	* pokernetwork/pokerservice.py:
	cashOutCommit to validate a cashout request

	* pokernetwork/pokerserver.py:
	Split into files : pokeravatar.py, pokercashier.py, pokerdatabase.py, pokerlock.py, pokerservice.py, pokertable.py

	* pokernetwork/pokerserver.in: Remove useless pythonpath.

	* pokernetwork/pokerpackets.py: Update copyrights.
	TABLE_SELECT : query string hold the currency serial instead of the custom_money y/n flag.
	PLAYER_ARRIVE : bugous ternary replaced with a regular if on seat number.
	USER_INFO : remove the *_money fields and replace with the money list
	TOURNEY : replace custom_money with currency_serial
	PacketPokerMoneyTransfert, CASH_IN, CASH_OUT, CASH_OUT_COMMIT, RAKE packets

	* pokernetwork/pokerdatabase.py:
	Allow for asynchronous db requests thru adbapi.
	Create database, tables and user when the database root password is valid so that setup is made easier.
	Stricter upgrade file searching (.sql in the last 4 letters) to avoid confusion.
	MySQL command is not hard wired but read from the configuration file.

	* pokernetwork/pokerclient.py:
	Avoid strange emacs indent problem by adding leading py-indent-offset.
	Update copyright.
	PLAYER_INFO AND USER_INFO are outbound packets.
	packetDeferred method : allow for a callback to be fired once when a packet of a given type and for a given table is received. Allow for implementation of fibers / continuations in packet handling.
	New field : user_info very redundant with player_info.
	Update the pokergame instance when POKER_RAKE is received.
	Do not generate SELF_IN_POSITION packets when autopaying the blinds.
	protocolInvalid calls parent method.
	Replace False boolean expressions with not.

	* pokernetwork/pokerbot.py: Update copyright.

	* pokernetwork/pokerbot.in: Remove useless pythonpath.

	* pokernetwork/pokeravatar.py: Extracted from pokerserver.

	* pokernetwork/packets.py: Avoid harmless python name clashes.
	Handle gracefully __eq__ with heterogeneous types.

	* pokernetwork/client.py:
	Trigger deferred when the connection is established and when it is lost.

	* pokernetwork/__init__.py: protocol version changed

	* pokerclient2d/lobby.c, pokerclient2d/tournaments.c:
	play_money -> money_one, custom_money -> money_two

	* pokerclient2d/python.c:
	build interface function name based on python version and compile time macros

	* pokerclient2d/pokerinterface2d.py:
	Load the C module with python version prefix if appropriate, with fallback to unversioned.

	* pokerclient2d/poker2d.xml.in: currency_serial instead of custom_money

	* pokerclient2d/poker2d.in: no version

	* configure.ac: poker2d not versioned

	* pokerclient2d/poker2d-test.xml: default web for tests moved

	* pokerclient2d/poker2D.ico: poker2d icons for menus

	* pokerclient2d/menu.c: branch the cash-in / cash-out menu entries

	* pokerclient2d/client.xml:
	money* elements to describe the supported currencies

	* pokerclient2d/cashier.c:
	play_money -> money_one, custom_money -> money_two

	* pokerclient2d/data/interface/interface.glade:
	Add cash-in & cash-out menu entries.

	* pokerclient2d/Makefile.am: Update copyrights.
	Per python version interface module.

	* examples/poker.bot.xml, examples/poker.server-cygwin.xml, examples/poker.server-monotone.xml, examples/poker.server.xml:
	new database element parameters

	* debian/python-poker-network.config, debian/python-poker-network.dirs, debian/python-poker-network.init, debian/python-poker-network.install, debian/python-poker-network.postinst, debian/python-poker-network.postrm, debian/python-poker-network.preinst, debian/python-poker-network.templates, debian/python-poker2d.install, debian/python-poker2d.postinst, debian/rules, debian/rules.mk:
	remove python versions and invoque pycentral first in postinst

	* debian/poker-web.preinst:
	Attempt to install phpunit & xdebug using pear and pecl.

	* debian/control: python new policy, package are not versionned

	* debian/changelog: new python policy

	* debian/changelog, debian/pycompat: pycentral

	* database/schema.sql.in: switch all tables to InnoDB for transactions.
	table server : no money generator paradigm.
	table users : money amounts are stored in other tables.
	table user2money : per currency amounts for each player.
	table currencies : one entry per cash generator (pokerweb/pages/currency.php)
	table safe : notes from various currencies owned by the server.
	table counter : notes being cashed in or out but not yet commited
	table user2table : kill the custom_money switch
	table pokertables : the currency serial is added
	table tourneys,tourneys_schedule : currency_serial replaces custom_money flag
	table users_transaction : user chips exchanges.

	* database/pokerdatabaseupgrade.in: Fix coding typo + trash pythonpath

	* database/1.0.20-1.0.21.sql: *** empty log message ***

	* config/python.m4, config/ccpython.m4:
	copy from pypoker-eval for multiple python interpreter support

	* conf/poker.server.xml.in: s/custom_money/currency_serial/
	root_user & root_password & command added to the database element

	* conf/poker.client.xml.in: s/custom_money/currency_serial/

	* conf/poker.bot.xml.in: 1.0.21

	* poker-network.pc.in: Remove obsolete pythonpath and version suffix.

	* configure.ac: Replace vnc with Xvfb.
	pokerconfigupgrade does not have a versionned name.
	Remove python version tweaks. Keep pkg* variables substitutions.
	--with-poker-dbroot & --with-poker-dbroot-password flags added.
	Shorter mysql related message at the end of the script (because pokerdatabase does more automagic).

2006-07-21  Loic Dachary  <loic@dachary.org>

	* Makefile.am: SQL schema migration + pokerserver splitted files

	* pokerweb/pages/currency.php:
	fallback if no device based random source is found

	* pokerweb/pages/neteller.py: *** empty log message ***

	* pokerweb/pages/neteller.py:
	Don't verify CA peer on windows : the curl lib is not provided with the proper CA list.

	* debian/control.unstable: sync

	* pokerweb/pages/class.poker.php, pokerweb/pages/cash_out_two.php, pokerweb/pages/cash_out_one.php:
	*** empty log message ***

	* pokerweb/pages/cash_out.php: cash out switch

	* pokerweb/pages/cash_out_one.php: cash out example

	* pokerweb/pages/class.poker.php: errors

	* pokerweb/pages/class.poker.php: cashOut

	* pokerweb/pages/prototype.js: ajax

	* pokerweb/pages/index.php: cashIn / cashOut options

	* pokerweb/pages/currency.php: *** empty log message ***

	* pokerweb/pages/common.php: setup include path

	* pokerweb/pages/class.poker.php: cashIn / cashOut

	* pokerweb/pages/lib_filters.php: _me

2006-07-18  Loic Dachary  <loic@dachary.org>

	* pokernetwork/currencyclient.py, pokernetwork/pokerservice.py, pokernetwork/pokercashier.py, tests/test-pokercashier.py.in:
	*** empty log message ***

2006-07-17  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokertable.py, pokernetwork/pokerservice.py, pokernetwork/pokeravatar.py, pokernetwork/currencyclient.py, tests/test-pokerclient.py.in:
	*** empty log message ***

2006-07-12  Loic Dachary  <loic@dachary.org>

	* pokerweb/pages/cash_in_one.php, pokerweb/pages/cash_in.php, pokerweb/pages/cash_in_two.php, pokerweb/pages/neteller.py, pokerweb/pages/neteller.cfg:
	*** empty log message ***

2006-07-11  Loic Dachary  <loic@dachary.org>

	* tests/test-currencyclient.py.in, pokernetwork/pokercashier.py, pokernetwork/pokerservice.py, tests/testicurrency.php.in, tests/testcurrency.php.in, pokerweb/pages/currency.php, pokernetwork/currencyclient.py:
	*** empty log message ***

	* pokerweb/pages/currency_two.php, pokerweb/pages/currency_one.php:
	two currencies

	* pokerweb/pages/currency.php: standalone

	* pokerweb/pages/currency.php, tests/testicurrency.php.in, tests/test-pokerclient.py.in:
	*** empty log message ***

2006-07-10  Loic Dachary  <loic@dachary.org>

	* tests/test-pokerclient.py.in: *** empty log message ***

2006-07-09  Loic Dachary  <loic@dachary.org>

	* tests/test-pokerclient.py.in, pokerclient2d/poker2d-test.xml:
	*** empty log message ***

2006-07-08  Loic Dachary  <loic@dachary.org>

	* tests/test-pokerservice.py.in, pokernetwork/pokerservice.py, pokernetwork/pokercashier.py, pokernetwork/pokeravatar.py:
	*** empty log message ***

2006-07-07  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokerservice.py, tests/test-pokercashier.py.in, pokernetwork/pokerlock.py, tests/test-pokerservice.py.in, pokernetwork/currencyclient.py:
	*** empty log message ***

2006-07-06  Loic Dachary  <loic@dachary.org>

	* pokernetwork/currencyclient.py, tests/test-currencyclient.py.in, tests/testicurrency.php.in, pokerweb/pages/icurrency.php, pokerweb/pages/currency.php, tests/testcurrency.php.in:
	*** empty log message ***

	* tests/testicurrency.php.in: confirmation

	* pokerweb/pages/icurrency.php, tests/testcurrency.php.in, pokerweb/pages/currency.php:
	*** empty log message ***

2006-07-05  Loic Dachary  <loic@dachary.org>

	* tests/test-pokercashier.py.in, pokernetwork/pokerlock.py, tests/test-pokerlock.py.in:
	*** empty log message ***

2006-07-05  proppy  <proppy@allin>

	* pokerclient2d/poker3d-interface/poker3d-interface.vcproj: remove copy

2006-07-04  Loic Dachary  <loic@dachary.org>

	* tests/test-currencyclient.py.in: *** empty log message ***

	* tests/test-pokerdatabase.py.in: asynchronous pool

	* pokernetwork/currencyclient.py, tests/test-pokerservice.py.in:
	*** empty log message ***

	* tests/testicurrency.php.in: icurrency

	* tests/testcurrency.php.in: *** empty log message ***

	* tests/testcurrency.php.in: currency

2006-07-02  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokertable.py, pokernetwork/pokeravatar.py, pokernetwork/pokerservice.py:
	*** empty log message ***

	* tests/test-pokerservice.py.in: more tests

	* pokerweb/conf/currency_configuration.php: rename

	* pokerweb/pages/bank.php, pokerweb/pages/currency.php: rename bank.php

	* pokernetwork/pokerservice.py: cashin

2006-07-01  Loic Dachary  <loic@dachary.org>

	* pokerweb/conf/bank_configuration.php, pokerweb/pages/bank.php:
	bank note server

2006-06-30  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokertable.py, pokernetwork/pokerservice.py, pokernetwork/pokeravatar.py:
	split pokerserver

	* tests/test-pokerservice.py.in: pokerservice tests

	* tests/test-pokerdatabase.py.in: pokerdatabase tests

2006-06-29  proppy  <proppy@allin>

	* ChangeLog: update ChangeLog

	* pokernetwork/pokerclient.py:
	PacketPokerHighestBetIncrease only when raised

	* pokerui/pokerrenderer.py:
	bind handleInteractor on PACKET_POKER_BET_LIMIT

	* pokerui/pokerrenderer.py: fixed bug interactor

	* pokerui/pokerrenderer.py: added log

	* pokernetwork/pokerclient.py: added warning

	* pokerui/pokerrenderer.py: added warning message

2006-06-28  Loic Dachary  <loic@dachary.org>

	* configure.ac: no makefile

	* configure.ac: no bank specifics

2006-06-26  proppy  <proppy@allin>

	* pokerui/pokerrenderer.py: fix bug 788

	* pokernetwork/pokerclient.py: fixed bug #803

	* pokerui/pokerrenderer.py: fixed bug #830

2006-06-26  Cedric Pinson  <cpinson@allin>

	* pokerui/pokerrenderer.py: Fix the bug at the end of tournament

2006-06-26  proppy  <proppy@allin>

	* pokerui/pokerinteractor.py: verbose 3

	* pokerui/pokerrenderer.py: verbose 2 -> 3

2006-06-26  Johan Euphrosine  <johan@mekensleep.com>

	* pokernetwork/pokerclient.py: PacketPokerHighestBetIncrease is now only sent when raised
	fix bug #803, remove setPlayerDelay() call when the corresponding player doesn't exist
	add a warning message when it occurs

	* pokerui/pokerrenderer.py: bind handleInteractor to PACKET_POKER_BET_LIMIT
	fix re-entrant update when disableAllInteractorButThisOne
	add log for interactorDisplayCallback
	fix bug #788 #830, 	remove sitOut() call if no current game active
				remove sitOut() call for a non-existing serial
				remove chatLine() call if no current game active
				add warning message when it occurs
	raise interactor verbosity level to 3
	
	* pokerui/pokerinteractor.py: raise interactor verbosity level to 3

Thu Jun 22 2006  Loic Dachary  <loic@dachary.org>

	* pokernetwork/protocol.py (UGAMEProtocol._handleVersion): if bootstrap string
	  < 4 char & contains newline, bomb instead of going thru

Fri Jun 23 2006  Loic Dachary  <loic@dachary.org>

	* configure.ac (POKER_NETWORK_PKGSYSCONFDIR): test pkg-config result

Thu Jun 22 2006  Loic Dachary  <loic@dachary.org>

	* configure.ac: htmlview for fedora

Wed Jun 21 2006  Loic Dachary  <loic@dachary.org>

	* pokernetwork/pokerserver.py (PokerService.tableMoneyAndBet): gracefully cope with
	  null values

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection:PACKET_POKER_CANCELED): 
          self.readyToPlay(packet.game_id)

Tue Jun 13 2006  Johan Euphrosine  <johan@mekensleep.org>

	* tests/examples: updated test

Fri Jun 09 2006  Cedric Pinson  <cpinson@freesheep.org>

	* pokernetwork/pokerpackets.py:
	* pokerui/pokerrenderer.py:
	Add packet and function to disable animation in first person

Wed Jun 07 2006  Johan Euphrosine  <johan@mekensleep.org>

	* pokerui/pokerrenderer.py: added amount member to POKER_PACKET_CALL when rendered to game

	* pokerclient2d/buy_in.c: moved gui_center from init to "show" command
	
Sun May 21 2006  Loic Dachary  <loic@dachary.org>

	* Release 1.0.20

	* configure.ac: eval three times to cope with various levels of
	quoting by automake (2006.05 cvs is in unstable)

	* pokerui/pokerdisplay.py (PokerDisplay.setSoundEnabled): the
	  display may refuse to set the sound

Sat Apr 22 2006  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/pokerdisplay2d.py (PokerDisplay2D.render): play timeout
	  sounds only for self, not for other players

	* smoother swap self_in_position and timeout_notice

Wed May 10 2006  Cedric Pinson  <cpinson@freesheep.org>

	* Release 1.0.19

	* pokerui/pokerrenderer.py:
	it's not require to restart the game if we disable the sound

Fri Apr 21 2006  Loic Dachary  <loic@gnu.org>

	* tests/test-poker-interface.py: test all functions of poker-interface

	* pokerclient2d/outfits.c (param_update_preview): gdk_region_destroy leak fix

	* pokerclient2d/cashier.c (handle_cashier): free fields[] (leak)

	* pokerclient2d/lobby.c (handle_lobby): test that image exists

	* pokerclient2d/chat.c (destroy_smiley_array): do not free NULL array

	* configure.ac: search for valgrind & vncserver

	* test/* : rearchitecture to centralize in run.in

	* pokerclient2d/chat.c (create_smiley_array): (char*) instead of (char)

Wed Apr 19 2006  Loic Dachary  <loic@gnu.org>

	* Release 1.0.18

	* tests/test-pokernetworkconfig.py.in (PokerNetworkConfigTestCase.test_notify): 
	  unit tests for pokernetworkconfig

	* pokerclient2d/pokerdisplay2d.py (PokerDisplay2D.settingsUpdated): update instance
	  members each time the settings are updated

	* pokerclient2d/{dispatcher,main}.c: no #if HAVE_CONFIG_H

	* configure.ac: remove useless config.h

Tue Apr 18 2006  Loic Dachary  <loic@gnu.org>

	* Makefile.am (clean-local): all autotool files in config dir
	  MAINTAINERCLEANFILES simpler because all in config dir

	* tests/coverage_{reset,report}.in, tests/coverage.py: 
	  code coverage report from http://nedbatchelder.com/code/modules/coverage.html

	* pokernetwork/pokernetworkconfig.py (Config.headerSet): config modification notifications

	* pokerui/pokerrenderer.py (PokerRenderer.handleMenu): sound effects menu change
	  don't require restart for poker2d

	* pokerclient2d/data/Makefile.am (nobase_dist_poker2d_DATA): sound/*.wav

	* pokerclient2d/data/sounds: sounds for in_position + timeout

	* pokerclient2d/client.xml: map events to sound files

Thu Apr 06 2006  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerService.{setAccount,userCreate}): set created field with current time

	* database/{schema.sql.in,1.0.17-1.0.18.sql}: creation date for users

Fri Mar 31 2006  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerchildren.py (PokerChildBrowser.__init__): if absolute
	  URL, dont prepend the poker web base url

	* pokerui/pokerrenderer.py (PokerRenderer.handleMenu): on licenses, get 
	  the matching license URL from /sequence/licences (or defaults to the	
	  FSF license list)

	* pokerclient2d/menu.c (on_license_activate): license display callback

Thu Mar 30 2006  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/data/interface/interface.glade: credit window

	* pokerclient2d/client.xml (Authors): poker-network credits & copyright notice

	* pokerui/pokerrenderer.py (PokerRenderer.displayCredits): display the <credits>
	  element from the config file using the credit interface facility

	* pokerclient2d/credits.c (handle_credits): pango markup enabled, scrollable credit
	  window. 

Mon Mar 27 2006  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/Makefile.am (cpokerinterface_la_LDFLAGS): -no-undefined for
	  cygwin compatibility (https://sourceforge.net/tracker/?func=detail&atid=213546&aid=1455067&group_id=13546)

Sun Mar 26 2006  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/blind.c: don't store boolean in pointers

	* pokerclient2d/*: fix warnings

Wed Mar 22 2006  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/pokerdisplay2d.py (PokerTable2D.render): handle
	  PACKET_POKER_HIGHEST_BET_INCREASE to update the raise range

	* pokernetwork/pokerclient.py (PokerClientProtocol.gameEvent): notify
	  bet limit increase on call if pot limit

	* database/{schema.sql,1.0.16-1.0.17.sql}: self-sufficient primary key for
	  browsing session history

	* {tests,examples}/poker.server*.xml: player_timeout

Tue Mar 21 2006  Loic Dachary  <loic@gnu.org>

	* pokerweb: s/encodage/encoding/

Sun Mar 19 2006  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/poker2d.in: force theme

Sat Mar 18 2006  Loic Dachary  <loic@gnu.org>

	* Release 1.0.16

	* pokerui/pokerrenderer.py: fix excessive verbosity 

	* pokernetwork/pokerbot.py (PokerBot.play): bot betting is
	  exponential rather than linear. This avoids tedious betting race
	  when in no limit.

	* pokernetwork/pokerserver.py (PokerService.tourneyCreateTable): timeout -> player_timeout

Wed Mar 15 2006  Loic Dachary  <loic@gnu.org>

	* packaging fixes

Tue Mar 14 2006  Loic Dachary  <loic@gnu.org>

	* Release 1.0.15

	* pokernetwork/dispatch.py: import from twisted because it is deprecated in
	  twisted-2.2.0

Sun Mar 12 2006  Loic Dachary  <loic@gnu.org>

	* Release 1.0.14

	* pokernetwork/pokerserver.py (PokerService.getUserInfo): SQL sum() may return 
	  a strings instead of int (MySQL 5)

	* pokerweb/pages/nusoap.php: rename soapclient to nusoapclient to avoid
	  name conflict in php5

	* pokerui/pokerrenderer.py (PokerRenderer.chatFormatMessage): import string

	* pokerclient2d/poker2d.xml.in: add ping attribute (hang bug)

	* pokerclient2d/poker2d-test.xml: python2.4 paths

	* conf/poker.server.xml.in: timeout -> player_timeout

Tue Wed 27 2006  Johan Euphrosine <johan@mekensleep.org>

	* pokerui/
	* pokerclient2d/
	add check_warning box

Tue Mar 07 2006  cedric pinson  <cpinson@freesheep.org>

	* pokernetwork/pokerpackets.py:
	add field game_id to packet PacketDisplayNode

Tue Feb 27 2006  Johan Euphrosine <johan@mekensleep.org>

	* pokernetwork/pokerclient.py (PokerNetworkGameClient): 
	new class inherited from PokerGameClient
	added skin_level member to keep track of level data per table
	* pokerui/
	* pokerclient2d/
	added muck dialog box instead of yes/no

Tue Feb 13 2006  Johan Euphrosine <johan@mekensleep.org>

	* pokerui/pokerrenderer.py (PokerRenderer.bootstrap): 
	based login show at startup upon first_time flag
	* pokernetwork/pokerclient.py (PokerClientFactory.saveAuthToFile): 
	save "" login instead of username to update first_time flag
	
Fri Feb 10 2006  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/poker2d.py (run): if settings file does not exist,
	  copy default one to it instead of copying it to ~/.poker2d/poker2d.xml

Tue Jan 24 2006  Johan Euphrosine <johan@mekensleep.org>
	
	* pokerui/pokerrenderer.py (PokerRenderer.updateDecorations): 
	added hide/show "lobby_tab_window" when leaving/entering lobby OR tournament

	* pokerclient2d/tournaments.c: 
	* pokerclient2d/lobby.c: 
	added g_lobby_tab_state for keeping track of the state of tournament/lobby tab.	
	merged tournament/lobby tab callbacks
	
Fri Jan 27 2006  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerchildren.py (PokerRsync.configure): support rsync proxy

	* pokerclient2d/poker2d.py (PokerClientFactory2D.selectServer): use proxy aware connector

	* pokernetwork/proxy.py: transparent proxy support draft-luotonen-web-proxy-tunneling-01.txt

Tue Jan 24 2006  Loic Dachary  <loic@gnu.org>

	* pokerui/pokerinterface.py (PokerInterface.updateMenu): 
	* pokerclient2d/menu.c (handle_menu): kill display 2d/3d switch

Tue Jan 24 2006  Johan Euphrosine <johan@mekensleep.org>

	* pokerui/pokerrenderer.py: added wrap_text function instead of DummyWriter

Mon Jan 23 2006  Benoit Treins

        * pokernetwork/pokerserver.py: added 'muck_timeout' parameter in poker table and xml table def file

	* pokernetwork/pokerserver.py: changed 'timeout' parameter to 'player_timeout' in poker table and xml table def file
	
        * pokernetwork/pokerpackets.py(PACKET_POKER_TABLE): added 'muck_timeout' parameter
	
	* pokernetwork/pokerpackets.py(PACKET_POKER_TABLE): changed 'timeout' parameter to 'player_timeout'	


Tue Jan 03 2006  Benoit Treins

	* pokernetwork/pokerserver.py: store the skin information in poker table
	
	* pokernetwork/pokerpackets.py(PACKET_POKER_TABLE): add the skin info

Tue Jan 03 2006  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py: store the timeout information
	
	* pokernetwork/pokerpackets.py(PACKET_POKER_TIMEOUT_WARNING): add the reference time
	
	* pokerclient2d/pokerdisplay2d.py (PokerDisplay2D.updateAction): remove shadowstack handling
	  since pokerrenderer now uses call/raise interactors

Mon Jan 02 2006  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerService.spawnTourney): provide search path
	  to PokerTournament for it to find the payout structure.

Wed Dec 28 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/protocol.py (UGAMEProtocol._handleVersion): _protocol_ok flag to handle
	  premature deconnexion while protocol is being negotiated

Tue Dec 06 2005  Johan Euphrosine  <johan@mekensleep.org>
Tue Dec 06 2005  Cedric Pinson  <cpinson@freesheep.org>

	* pokerclient2d/chat.c: added chat history handling
	* pokerui/pokerrenderer.py: added chat history handling


Tue Dec 06 2005  Johan Euphrosine  <johan@mekensleep.org>
Tue Dec 06 2005  Cedric Pinson  <cpinson@freesheep.org>

	* pokernetwork/pokerpackets.py: added PacketPokerInterfaceCommand for sending hide/show-window command to display3d

	* pokerui/pokerrenderer.py: added render(PacketPokerInterfaceCommand) for forwarding hide/show-window command to display3d

	* pokerclient2d/: show and hide window only if (screen != NULL) (i.e in 2D)

Wed Nov 23 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.13

	* pokernetwork/pokerserver.py: kill obsolete tournament balancing functions

	* pokernetwork/__init__.py (protocol_number): protocol changes because the
	  server refers to new betting structures.

	* pokerweb/pages/class.poker.php: rename soapclient to nusoapclient to avoid
	  name conflict in php5

Mon Nov 14 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokerinterface.py (PokerInterface.handleBuyIn): double click safeguard

	* pokerui/pokerinterface.py (PokerInterface.handleTournaments): all tournaments messages have
	  only two arguments, not three

	* upgrades/poker.server/1.0.12-1.0.13.xsl: ping time set to 240

	* pokerui/pokerrenderer.py (PokerRenderer.sitOut): avoid race condition
	  when sitout is called and the player is no longer at the table.

Fri Nov 04 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokerrenderer.py (PokerRenderer.restoreGameSate): send the 
	  appropriate processing/ready packets when switching games

	* conf/poker.server.xml.in: betting structures changed

	* pokerclient2d/menu.c (handle_menu): menu bar as wide as screen

Wed Nov 02 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokeranimation.py (PokerAnimationPlayer.setPlayerDelay): set the
	  delay for the next incoming packet in order to ensure that the animation
	  has enough time to finish before another one comes in the way

Mon Oct 31 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/protocol.py (UGAMEProtocol.setPingDelay): forgot underscore

Fri Oct 28 2005  Johan Euphrosine  <johan@mekensleep.com>

	* pokerclient2d/network.c: 
	* pokerclient2d/main.c: 
	added handling of GIOCondition G_IO_ERR: call gtk_main_quit
	REALLY fix performance issue (CPU 100%), when interface server disconnect due to a crash
	
Thu Oct 27 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientFactory.isAlwaysHandled): some packets are never
	  delayed

	* pokernetwork/pokerserver.py (PokerTable.allReadyToPlay): log players who are not ready
	(PokerTable.disconnectPlayer): a disconnected player is always ready to play

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection): PACKET_POKER_SIT no longer
	  imposes a delay

	* pokernetwork/protocol.py (UGAMEProtocol._processQueues): call canHandlePacket to figure
	  out if it's ok to call the handler on each packet

	* pokernetwork/pokerclient.py (PokerClientProtocol.{get,set}PlayerDelay): per player user 
	  delays

	* pokernetwork/pokerclient.py (PACKET_POKER_SIT): minimum delay from settings/delay/@sit
	
Wed Oct 26 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerAvatar.handlePacketLogic): limit traces of ping packets

Wed Oct 26 2005  Nicolas Albert  <nicolas_albert_85@yahoo.fr>

	* pokerclient2d/data/interface/interface.glade:
	add to yesno_window and message_window, head_hbox with 3 subwidgets *_msg_head_left,*_msg_head_middle,*_msg_head_right for don't strech the windows's heads

Mon Oct 24 2005  Johan Euphrosine  <johan@mekensleep.com>

	* Release 1.0.12

	* pokerclient2d/main.c: 
	* pokerclient2d/network.c: 
	added handling of GIOCondition G_IO_HUP: call gtk_main_quit
	fix performance issue (CPU 100%), when interface server disconnect due to a crash

Mon Oct 24 2005  Loic Dachary  <loic@gnu.org>

	* database/schema.sql.in: define money generator plugins to load

	* pokernetwork/pokerserver.py (PokerService.sessionEnd,sessionStart): session records
	  for each player.
	  (PokerAvatar.logout): start session
	  (PokerAvatar.login): end session
	  (PokerService.cleanUp): crash recovery wipe out bots information and make non closed
	  session history.

	* database/1.0.11-1.0.12.sql: session and session_history tables

	* pokerui/pokerrenderer.py (PokerRenderer.queryLobby): only query lobby if protocol is 
	  active

Fri Oct 21 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/client.py (UGAMEClientProtocol.ping_delay,setPingDelay,getPingDelay): data member
	(UGAMEClientProtocol.ping): send a PACKET_PING to the other side if nothing was sent within
	ping_delay seconds.

	* pokernetwork/pokerclient.py (PokerClientProtocol.protocolEstablished): call base function
	  and set the ping time according to configuration
	  (PokerClientFactory.__init__): get ping time from settings file

	* pokernetwork/server.py: keepalive logic, server side

	* upgrades/poker.{client,server,bot}/1.0.11-1.0.12.xsl: ping interval

Wed Oct 19 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/upgrade.py (Constants.RSYNC): -z3

	* pokerweb/pages/class.poker.php: memorize serial and twisted_session within the
	  class.

Tue Oct 18 2005  Loic Dachary  <loic@gnu.org>

	* upgrades/poker.server/1.0.11-1.0.12.xsl: Game start negotiations allows to triple the delays

	* pokernetwork/pokerclient.py (PokerClientFactory.__del__): dont delete games 
	  attribute if it does not exist.

	* pokerui/pokeranimation.py (PokerAnimationScheduler.__init__): cache chips values
	  for use by derived classes

	* database/1.0.11-1.0.12.sql: change money values according to units.

Mon Oct 17 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerService.spawnTourney): set the userdata when tournament
	  table is filled.

	* pokerclient2d/poker2d.py (Main.__init__): look for client.xml in current directory
	  first

	* pokerui/pokerrenderer.py (PokerRenderer.{buyIn,rebuy}): convert back the decimal amount
	  in cent

	* pokerui/pokerrenderer.py (PokerRenderer.requestBuyIn): converted to float so that
	  the user sees a decimal amount instead of a value in cents

	* pokernetwork/pokerclient.py: PacketPokerPlayerChips are no longer normalized by default
	  the PacketPokerClientPlayerChips is a new type that can hold chip / value maps

	* pokernetwork/pokerpackets.py (PacketPokerClientPlayerChips): kind of PacketPokerPlayerChips
	  that can hold chip / value map

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection): POKER_PLAYER_CHIPS
	  is also rendered as POKER_CLIENT_PLAYER_CHIPS, that is with a chip / value map
	  instead of a mere integer.

	* pokerclient2d/pokerdisplay2d.py (chips2int): not needed anymore

	* pokerclient2d/pokerdisplay2d.py (PokerPlayer2D.updateChips): 
	  pokerclient2d/pokeranimation2d.py (PokerAnimationPlayer2D.pot2player): use
	  PokerChips.tostring to format the bet amount

	* pokerui/pokerrenderer.py (PokerRenderer.handleInPosition): kill
	  because never used

	* pokerui/pokeranimation.py (PokerAnimationPlayer.normalizeChips): remove 
	  function, use tolist method of pokerchips instead

	* pokernetwork/pokerclient.py (PokerClientProtocol.normalizeChips): chips
	  values always contain 1 so that there can be no misrepresentation of 
	  chips.

	* pokernetwork/pokerclient.py: incoming packets contain integers to
	  represent amounts instead of chips list

	* pokernetwork/pokerpackets.py (PacketPokerChips, PacketPokerPlayerChips): 
	  stored as integers instead of chips map

	* debian/python-poker-network.postinst: set verbosity

Fri Oct 14 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerTable.autoDeal): All clients
	that fail to send a PokerReadyToPlay packet within imposed delays
	after sending a PokerProcessingHand are marked as bugous and their
	next PokerProcessingHand request will be ignored.
	(PokerTable.scheduleAutoDeal): next hand is dealt either when all players
	agree or after a time estimated in proportion of the action.

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection): 
	  on PACKET_POKER_START tell the server that the renderer is
	  processing the hand (PROCESSING_HAND packet).
	  (PokerRenderer.readyToPlay): called after the showdown delay (WIN
	  packet) to notify the server that the renderer is ready to process
	  a new hand.

	* pokernetwork/pokerpackets.py (PacketPokerProcessingHand): client
	  is still processing the data related to the previous hand
	  (PacketPokerReadyToPlay): player is ready to begin a new hand 

	* pokernetwork/packets.py: renumber all packets. Add PACKET_PING.

	* pokernetwork/pokerserver.py (PokerAvatar.__init__): bugous_processing_hand
	  flag to remember if a client fails to properly implement PROCESSING_HAND
	  and READY_TO_PLAY protocols.

	* conf/poker.server.xml.in: The delays become maximum delays, in
	  case a buggy client fails to send a POKER_READY_TO_PLAY packet
	  after sending a POKER_PROCESSING_HAND packet. Otherwise the
	  server would block indefinitely and be unable to deal a hand
	  until the bugous client deconnects itself.

	* pokerui/pokerrenderer.py (PokerRenderer.delay): return the delay imposed
	  on packets

	* pokernetwork/pokerserver.py (PokerTable.readyToPlay): announce that player
	  is ready to play update the PokerTable accordingly (possibly dealing the
	  hand).

	* pokernetwork/pokerserver.py (PokerAvatar.addPlayer): set user data
	(PokerTable.movePlayerTo): set user data
	(PokerTable.DEFAULT_PLAYER_USER_DATA): per player table specific data structure
	by default all players are ready to play.

	* pokernetwork/pokerserver.py (PokerAvatar.auth): build AuthRefused using
	  error code instead of just the error string.

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection): AUTH_REFUSED 
	  use field message instead of string.

	* pokernetwork/packets.py (PacketAuthRefused): derived from PacketError instead
	  of PacketString so that code and other_type are sent along.

	* pokernetwork/packets.py: PACKET_PING packet used to keep the
	  connection alive and implement server timeouts.

	* pokerui/pokerrenderer.py (PokerRenderer.rotateTable): if the current game is none,
	  switch to the first available table. Happens when a table is destroyed, for instance
	  at the end of a tournament.

	* pokernetwork/pokerclient.py (PokerClientProtocol.resendPackets): do not send showdown
	  information if none is available.

	* pokernetwork/pokerpackets.py (PacketPokerShowdown.__str__): print showdown stack

Thu Oct 13 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py
	  (PokerClientProtocol.handlePlayerInfo): if the player outfit
	  read from the server does not match the software version, upload
	  a new one (possibly a random one, at the discretion of the
	  implementation of the interpret method of the Skin class).

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection): remove
	  handling of outbound packet PLAYER_INFO (never happens).

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection):
	 Check that the implementation of the outfit is still valid. If it
	 needs upgrade, send it back to the server.

	* pokernetwork/pokerclient.py (PokerClientFactory.isConnectionLess): true if
	  the packet given in argument can/must be handled even when the connection is
	  down (pre-protocol validation packets for instance)
	  (PokerClientProtocol.publishPacket): handle packets that are connectionLess

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection): confirmQuit is
	  not a pokerfactor method

	* pokernetwork/pokerclient.py (PokerClientProtocol.publishPacket): 

	* pokernetwork/pokerclient.py (PokerClientProtocol.protocolInvalid): publish the packet
	  immediately so that it is displayed before the connection is lost. Otherwise the 
	  connection lost event will be handled before the scheduled packet.

Wed Oct 12 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.11	

	* pokerclient2d/upgrades/1.0.10-1.0.11.xsl: add URL of the poker server web part,
	  if not present.

Tue Oct 11 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/chat.c (on_history_clicked): do not use custom images (use
	  style)

	* debian/poker-web: standalone package for web interface

Wed Oct 05 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokerrenderer.py (PokerRenderer.interfaceCallbackLogin): change
	  login= to name=.

	* pokerui/pokerrenderer.py (PokerRenderer.handleMenu):
	  edit_account: Set name and serial.  The name is used to pre-fill
	  the login form if the user is not logged in already.

	* pokernetwork/pokerserver.py (PokerService.auth): pass roles to discriminate
	  avatars with the same login name. 

	* pokernetwork/pokerserver.py (PokerAvatar.login): restrict registration
	  in service to avatars with role PLAY. It follows that there can only
	  be one avatar with role PLAY while there can be many avatars with other
	  roles.

	* pokernetwork/server.py (PokerServerProtocol.protocolEstablished): keepalive
	  set to get rid of idle connections

	* pokernetwork/pokerserver.py (PokerService.auth): allow multiple avatars
	  with the same name as long as they do not have the same role.

	* pokernetwork/pokerbot.py (PokerBot._handleConnection): 
	  pokerui/pokerrenderer.py (PokerRenderer.bootstrap): default role is PLAY

	* pokernetwork/packets.py: PACKET_ACK when all is needed is acknowledgement

	* pokernetwork/pokerserver.py (PokerAvatar.setRole): on PACKET_POKER_SET_ROLE
	  add the role to the avatar (can be PLAY for poker client and EDIT for 
	  web client).

	* pokernetwork/pokerpackets.py: PACKET_POKER_ROLES, PACKET_POKER_SET_ROLE

Tue Oct 04 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerSOAP.getArguments): simplify args instead
	  of args[0]

	* pokernetwork/pokerserver.py (PokerAvatar.auth): set reason when checkNameAndPassword
	  fails

	* pokernetwork/poker{bot,server}.py (run): always show stack trace on error

	* pokerweb: PHP based web part for the poker server, initial import
	
	* configure.ac: kill ok messages

Fri Sep 30 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientProtocol._handleConnection): POKER_IN_GAME
	  deals with the case when the server sends it a list of players that does not include
	  the players waiting for something (wait_for late, big, ). These players are marked
	  to wait_for the "first_round", i.e. will not participate to the blind/ante round.
	  This typically happens when the server sends a hand history when a arriving at 
	  a new table, because the state of the game is already past the blind/ante round
	  and the game history has been reduced.

Tue Sep 27 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.10

	* pokerui/pokeranimation.py (PokerAnimationScheduler.setProtocol): POKER_SEATS has priority

	* poker-network.pc.in (pkglibdir): add pkg-libdir

Sun Sep 25 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.9

	* automake-1.7 fix preventing distribution

Sat Sep 24 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.8

	* pokerclient2d/upgrades/str.replace.function.xsl: str:replace XSL function
	  implementation

	* pokerclient2d/upgrades/1.0.7-1.0.8.xsl.in: upgrade installed poker2d.xml
	  to add python version suffixes if relevant.

Fri Sep 23 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/network.c: TCP_NODELAY on connection

Sun Sep 04 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerchildren.py (PokerRsync.processEnded): fire
	  RSYNC_DONE event only if process exited on success.

	* pokerui/pokerrenderer.py (PokerRenderer.handleMenu): glow as
	  high quality graphics setting.

Sat Sep 03 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/upgrade.py (Upgrader.getUpgrade): exclude path is
	  os specific

Fri Sep 02 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/pokerdisplay2d.py (PokerTable2D.run,finish): remove

	* pokerclient2d/poker2d.py (Poker2DReactor): dedicated reactor that 
	  exits on error.
	  (Main.shutdown): directly call reactor.stop instead of relying
	  on pokerdisplay (meaningless in the case of the poker2d interface).
	  (Main.run): call reactor.run instead of delegating to display for
	  because it would be meaningless.
	  (run): remove useless friendly error reporting at this level

	* pokerui/pokerdisplay.py (PokerDisplay.finish): s/finish/finished/ for
	  flag.

	* pokerclient2d/pokerdisplay2d.py (PokerDisplay2D.render): exit if
	  protocol not set.
	  (PokerDisplay2D.run): call iterate as long as no error occurred
	  instead of calling reactor.run that runs forever even if a traceback
	  occurs.

	* pokernetwork/pokerclient.py(err): set a flag (log.error_occurred)
	  when an error is logged thru log.err or log.deferr. This allows
	  each iteration of the reactor.run to check it and stop the reactor
	  if this is the desired behaviour.

Wed Aug 31 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientFactory.__init__): 
          Make sure the attributes exists, should an exception occur before
          it is initialized with an instance of PokerChildren and such. This is done
          so that the caller does not have to check the existence of the
          attribute when catching an exception.

	* pokerclient2d/poker2d.py (Main.run): PokerClientFactory2D constructor 
	  exceptions catched. The existence of each attribute used is guaranteed by 
	  the PokerClientFactory class. 
	  (PokerClientFactory2D.__init__): display attribute has a default value of None

	* pokernetwork/pokerchildren.py (PokerRsync.processEnded): if process terminates
	  on error, raise an exception.

	* pokernetwork/upgrade.py (Constants.RSYNC): timeout if no activity I/O during more
	  than 60 seconds. Rsync is stored in a RSYNC variable with default options. Would
	  be good to also timeout on connection (DNS fails to resolve and such) but 
	  there is no option to do that at present.

Tue Aug 30 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/pokerdisplay2d.py (PokerDisplay2D.render): silently ignore render
	  requests when no game is current.
	  (PokerDisplay2D.render): quit when asked to
	  Fixes https://gna.org/bugs/index.php?func=detailitem&item_id=2754

	* pokernetwork/pokerclient.py (PokerClientProtocol.abortAllTables): rename publishQuit
	(PokerClientProtocol.connectionLost): destroy all tables when connection is lost

Mon Aug 29 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientProtocol._handleConnection): index self.position_info
	  with game.id before setting POSITION_OBSOLETE

	  (PokerClientProtocol._handleConnection): TABLE_DESTROY reset the game as it no longer exists.
	  When the function called when recieving TABLE_DESTROY completes, everything related to the
	  game has been destroyed, including data in objects recieving messages from pokerclient.
	  Fixes https://gna.org/bugs/index.php?func=detailitem&item_id=2583

Thu Aug 25 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.7

	* examples/poker.server-monotone.xml: set delay to 0 for maximum speed (this configuration
	  is designed to run as fast as possible anyways). update permissions to access the database.

	* examples/run-example: server configuration can be given in argument

	* pokernetwork/pokerserver.py (PokerService.tourneyMovePlayer): do not crash
	  if player is disconnected.

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection): PACKET_POKER_PLAYER_ARRIVE
	  convert set into sanity check on url/outfit members

	* pokerclient2d/Makefile.am (all-local): upgrade poker2d.xml.in

	* Makefile.am (all-local): upgrade conf/*.xml.in

	* pokerclient2d/poker2d.py (PokerSkin2D.showOutfitEditor): display the
	  current outfit color

	* database/1.0.5-1.0.7.sql: default users.skin_url is now random

	* database/schema.sql.in: field users.skin_url default is random

	* pokernetwork/pokerserver.py (PokerAvatar.login): set url and outfit
	  attributes
	  (PokerService.getPlayerInfo): default is random

	* pokernetwork/pokerclient.py (PokerClientProtocol._handleConnection): 
	  PACKET_POKER_PLAYER_INFO sets the outfit
	  (PokerSkin.__init__): interpret the random default 

	* pokerclient2d/poker2d.py (PokerSkin2D.__init__): skin url and outfit
	  is not set until the connection to the server is established

	* pokernetwork/pokerserver.py (PokerAvatar.getPlayerInfo): return error
	  if player is not logged in

	* pokernetwork/pokerdatabase.py (PokerDatabase.upgrade): do not report
	  obsolete database as an error and display upgrade success

	* pokernetwork/__init__.py (protocol_number): 
	* pokernetwork/protocol.py: protocol version is independent from the
	  package version

	* Makefile.am (sbin_SCRIPTS): pokerbot man page / program installation.

	* pokernetwork/pokerbot.in: standalone bot program.

	* pokernetwork/pokerbot.8.in: manual page for standalone bot program.

	* pokernetwork/pokerbot.py (makeApplication): make run function to
	  ease launch as a standalone program instead of a twisted daemon.

Wed Aug 24 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerpackets.py: GetPlayerInfo packet

	* configure.ac (UPGRADES_SOURCE): set default before it is used.

Wed Aug 17 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.6

	* upgrades: upgrade files for poker.{bot,client,server}.xml

	* pokerclient2d/upgrades: poker2d.xml and client.xml upgrades

	* tests/upgrade.in: run .xml files upgrades

	* tests/conf: 1.0.5 configuration files archives.

	* pokernetwork/{config,version}.py: derive from equivalent files
	  from poker-engine

	* configure.ac: take the version number from pokernetwork/__init__.py
	
	* pokernetwork/__init__.py: version_number is the source of the version.

Sun Aug 14 2005  Loic Dachary  <loic@gnu.org>

	* database/pokerdatabaseupgrade.8.in: manual page for database
	  upgrade utility

	* database/pokerdatabaseupgrade.in: run database upgrades stored
	  in .sql files to reach the current software version number
	
	* database/1.0.5-1.0.6.sql: database upgrade to 1.0.6

	* ChangeLog: remove hour stamp
	
	* Makefile.am: run tests, add pokerdatabaseupgrade utility, 
	  migration file from 1.0.5 to 1.0.6

	* configure.ac: detect mysql client program, substitute pkgdatadir, 
	  configure tests and upgrade programs. Substitute prefix early
	  so that path are accurate if --prefix is not specified.

Sat Aug 13 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/version.py.in (version): stores the string of the
	  version in addition to the major/medium/minor numbers

Fri Aug 12 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerXML.walk): walk a datastructure
	  and convert any unicode object to/from the desired encoding. Cope with
	  deficiencies of SOAP/XMLRPC python libraries and/or unfriendly 
	  clients.

Tue Aug 09 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientFactory.__init__): bind upgrade support
	  to clientVersionOk,needUpgrade,upgrade,upgradeReady designed to be overloaded
	  by derived classes and checkClientVersion that is the upgrade entry point.

	* pokerclient2d/poker2d.xml.in: add rsync information and upgrades yes/no flag

	* upgrade: run batched upgrades

	* pokerui/pokerdisplay.py: add showProgressBar,hideProgressBar and tickProgressBar
	  abstract functions

	* pokernetwork/pokerchildren.py (PokerRsync.configure): rsync invocation with
	  non blocking line based parsing of the output.

	* pokerclient2d/poker2d.py (PokerClientFactory2D.__init__): check versions
	  on upgrade server, if upgrades are enabled.

	* pokernetwork/upgrade.py: implement inplace upgrade system

Mon Aug 08 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/protocol.py (UGAMEProtocol._handleVersion): protocol number is based on version

	* pokernetwork/version.py.in: package version number

	* pokerui/pokerrenderer.py (PokerRenderer._handleConnection): AUTH_REFUSED: print the reason of
	  the failure as provided by the server

	* pokernetwork/packets.py (PacketAuthRefused): can now carry the reason of the failure

Sat Aug 06 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientProtocol._handleConnection): PACKET_POKER_PLAYER_SELF
	  will send PacketPokerSelfInPosition if necessary.

	* pokernetwork/pokerserver.py (PokerTable.possibleObserverLoggedIn): if an observer
	  turns out to be seated at the table, change its status.

	* pokernetwork/pokerserver.py (PokerAvatar.login): after successful login,
	  check if the player is already seated at the table. If this is the case,
	  update hole cards, send notification and blind/ante requests if necessary.
	
	* pokernetwork/pokerpackets.py (PACKET_POKER_PLAYER_SELF): new packet
	  notifying that a given player at the table is our avatar.

	* pokernetwork/pokerclient.py (PACKET_POKER_TABLE): too many
	  open tables.

Fri Aug 05 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.5

	* pokerui/pokeranimation.py (PokerAnimationTable.showdown): call showdownDelta for
	  each player at showdown 
	
	* pokerclient2d/pokeranimation2d.py (PokerAnimationPlayer2D.showdownDelta): show up
	  and down arrows according to the net income of the player

	* pokernetwork/pokerclient.py (PokerClientProtocol.packetsShowdown): send full
	  showdown stack to all consumers.

	* pokernetwork/pokerpackets.py (PacketPokerShowdown.__init__): new packet

Sat Jul 16 2005  Loic Dachary  <loic@gnu.org>

	* debian/control (Section): s/libs/python/ in sections.

Sat Jul 16 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.4

	* debian/python2.3-poker-network.postinst (pokernetwork_dir): substitute
	  %HOST% in clients regardless of server installation.

Fri Jul 15 2005  Thierry Delamare  <thy@mekensleep.com>

	* pokerui/pokerrenderer.py (PokerRenderer.__init__): show or not
	show next and previous label depending on start count and
	total. make count settable via poker2d-test.xml.

	* pokerclient2d/hand_history.c (handle_hand_history): 
	* pokerclient2d/poker2d.xml.in: 
	* conf/poker.client.xml.in: 

Wed Jul 13 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokerrenderer.py (PokerRenderer.changeState): reset state to IDLE
	  when switching to CANCELED state only if in PAY_BLIND state

	* pokerui/pokerrenderer.py (PokerRenderer.changeState): show chat bar if
	  in IDLE state only.

Tue Jul 05 2005  Loic Dachary  <loic@gnu.org>
	
	* pokerclient2d/lobby.c (handle_lobby): show icon marking
	  tables where player is seated.

Tue Jul 05 2005  Loic Dachary  <loic@gnu.org>

	* poker-network.pc.in: pkg-config compatibility

Mon Jul 04 2005  Loic Dachary  <loic@gnu.org>

	* README (Client): fix install paths as pointed out by
	  Jeff Schoby <ssrjazz@gmail.com>

Tue Jun 28 2005  proppy  <euphro_j@epitech.net>

	* pokerui/pokerrenderer.py (PokerRenderer.clickSitOut): 
	called when click occured on the sitout interactor
	send toggleSitOut to PokerInterface layer
	
	* pokerui/pokerinterface.py (PokerInterface.sitActionsToggleSitOut): 
	send toggle_sit_out command to poker-interface process

	* pokerclient2d/sit_actions.c (handle_sit_actions): 
	handling toggle_sit_out added : toggle sit_out_next_hand active state	
	smartified g_sit_actions_disable flag usage

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* configure.ac: substitutions for local configuration

	* {conf,pokerclient2d}/*.xml: moved to .xml.in with values from configure

	* debian/rules: set the configuration variables to debconf variables

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/outfits.c (on_arrow_clicked): outfit arrow wrap around

Tue Jun 28 2005  proppy  <euphro_j@epitech.net>

	* pokerui/pokerrenderer.py (PokerRenderer.chatFormatMessage): 
	chat words (defined in /sequence/chatwords) are filtered from POKER_CHAT message
	POKER_CHAT_WORD packet are scheduled for further response to matched chatwords
	
	* pokerui/pokeranimation.py (PokerAnimationScheduler.__init__): 
	pokeranimation registers chat handler on PACKET_POKER_CHAT_WORD event
	
	* pokernetwork/pokerpackets.py (PacketPokerChatWord.type): 
	PACKET_POKER_CHAT_WORD added

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerpackets.py: poker packet renderer

	* pokerui/pokerrenderer.py (PokerRenderer.changeState): notify display
	  when state changes

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerclient.py (PokerClientProtocol.resendPackets): check
	  that all players involved in a showdown still have a seat before 
	  displaying the showdown.

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokerrenderer.py (PokerRenderer.changeState): immediate feedback
	  and confirmation when leaving the table.

Tue Jun 28 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.3

	* pokernetwork/pokerclient.py (PokerClientProtocol._handleConnection): sitout if
	  not in player list.

Fri Jun 24 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.2

	* pokerclient2d/poker2d.py: workarounds for the twisted-2.0 bug 
	  http://twistedmatrix.com/bugs/issue1083

Thu Jun 23 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokeranimation.py (PokerAnimationPlayer.sitoutIfNotInGame): arrange
	  for sitout and sitin animations feedback to be immediate.

	* pokernetwork/pokerclient.py (PokerClientProtocol.sendPacket): build new client
	  side packets SIT_OUT_NEXT_HAND and SIT_REQUEST

Thu Jun 23 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerpackets.py: client <=> packets SIT_OUT_NEXT_TURN
	  and SIT_REQUEST

Thu Jun 23 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerAvatar.handlePacketLogic): issue 
	  an error if trying to logout without being logged in.

	* pokernetwork/pokerclient.py (PokerClientProtocol.publishPacket): when 
	  connection is lost, notify user and exit the client.

Tue Jun 21 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py (PokerXML): base class and
	  derived classes PokerXMLRPC and PokerSOAP to support 
	  XML-RPC and SOAP. With optional session management.

	* examples/xmlrpc-soap.py: XML-RPC and SOAP client test
	
Mon Jun 20 2005  Loic Dachary  <loic@gnu.org>

	* conf/poker.pem: self signed certificate
	* pokerclient2d/poker2d.py: support SSL connections
	* pokernetwork/pokerserver.py: allow SSL connections

Mon Jun 20 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerserver.py: restructure to allow multiple
	  protocols.

Wed Jun 15 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.1

	* debian/*: more robust installation process

Mon Jun 06 2005  Loic Dachary  <loic@gnu.org>

	* pokerui/pokerrenderer.py (PokerRenderer.hold): hold if in
	  stream mode only. Also hold when observing a table.

Sun Jun 05 2005  Loic Dachary  <loic@gnu.org>

	* pokernetwork/pokerbot.py (PokerBotFactory.__init__): name generation

Fri Jun 03 2005  Loic Dachary  <loic@gnu.org>

	* pokerclient2d/lobby.c (handle_lobby): s/stud7/7stud/

	* pokerui/pokerrenderer.py (PokerRenderer.showTournaments): handle tables/tournament
	  switching with persistent values.

	* pokernetwork/pokerclient.py (PokerClientFactory.__init__): end_round and begin_round
	  delays

	* pokernetwork/pokerserver.py (PokerServerFactory.getPersonalInfo): email None 
	  converted to ""

	* pokerui/pokerinterface.py (PokerInterface.handleLobby): two arguments only
	  and not three (https://gna.org/bugs/index.php?func=detailitem&item_id=2387)

	* pokernetwork/pokerserver.py (PokerServer.listTables): 
	* pokernetwork/pokerclient.py (PokerClientProtocol.resendPackets): fill all game
	  information.

Fri May 06 2005  Loic Dachary  <loic@gnu.org>

	* Release 1.0.0

Local Variables:
compile-command: "svn update ; svn2cl --group-by-day --authors=$(echo $HOME)/.svn2cl --stdout | head -2000 | sed -n '0,/^2010-06-01/p'"
End:
