lp:~robru/friends/gschema

Created by Robert Bruce Park and last modified
Get this branch:
bzr branch lp:~robru/friends/gschema
Only Robert Bruce Park can upload to this branch. If you are Robert Bruce Park please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Robert Bruce Park
Project:
Friends
Status:
Merged

Recent revisions

21. By Robert Bruce Park

Add a new gsettings schema, with a basic subset of options.

I reviewed the old gwibber gschema and identified just a few options
that we are actually using at this point (most of the other options
are holdovers from when gwibber still had it's own frontend).

Also modified setup.py to install it for us.

20. By Robert Bruce Park

Fix some AccountManager methods. Fixes lp:1069509

Ok, so I reviewed this in much more depth than previously. This
commit:

* Unifies the behavior of disabling and deleting accounts. Now, if
  you're in UOA, and you flick an account to 'OFF', it's messages will
  be removed from the model. Similarly, if you outright delete an
  account, the associated messages are also deleted. Currently we do
  not make any distinction between a "disabled" and a "deleted"
  account. In both cases, messages are removed from the model, and no
  attempts are made to redownload messages from that account, until it
  is re-enabled later.

* Removes the "refresh callback" from the AccountManager, because that
  was stupid. It turns out, when an account is enabled, you only need
  to call 'receive' on that one account, not on all of them together.
  So this is a nice little efficiency win.

* Updates all the tests to the new API changes.

I tested this thoroughly with friends-service.sh, using UOA to enable,
disable, delete, and recreate accounts, and it works great.

The best part is, thanks to my previous work on using
Model.insert_sorted instead of Model.append, deleting and re-adding
messages to the model doesn't change the order of those messages in
the Model.

19. By Robert Bruce Park

SharedModel persistence has landed!

18. By Robert Bruce Park

Implement Dispatcher.SendReply, with tests.

This was requested by kenvandine, who discovered that Dispatcher.Do
was inadequate for this purpose.

17. By Robert Bruce Park

Add a test case for the Dispatcher.

16. By Robert Bruce Park

Fix Flickr's timestamps.

This was another case of the mocks not matching reality, so the test
suite would pass, but in reality the timestamps weren't working. So
I've updated the mocks to reflect reality, and updated the behavior to
work correctly. This is confirmed to be working with debug_live.py.

15. By Robert Bruce Park

Workaround for Authentication.login hanging, which was also causing
Dispatcher.Refresh to hang thanks to it's use of thread.join().
Authentication.login was using an extraneous GObject MainLoop for the
purposes of blocking it's thread synchronously until an async callback
got called, but that was a dain bramaged approach because not only
does it interfere with the primary mainloop, but
Signon.AuthSession.process seems to have a bug where the callback
often won't be called, causing the mainloop to block forever.

I've replaced this mainloop with a while loop that calls time.sleep()
a limited number of times. The advantage here is that we have direct
control over how many times time.sleep() gets called and never have to
worry about waiting for a callback that might never come to unblock
us.

This commit also makes sweeping changes to the logging infrastructure,
which were necessary to track down this bug, and generally beneficial,
so they're being included rather than reverted. Logging is now more
verbose, and makes extensive use of the "logging.getLogger(__name__)"
idiom for finer-grained data on which log is coming from where.
debug_live.py also received an overhaul in order to better accommodate
testing.

14. By Ken VanDine

fixed traceback in the log output from enabling account.

13. By Barry Warsaw

merge trunk

12. By Barry Warsaw

More distutils nonsense.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:friends
This branch contains Public information 
Everyone can see this information.