Merge lp://qastaging/~cmiller/desktopcouch/cleaner-exceptions into lp://qastaging/desktopcouch

Proposed by Chad Miller
Status: Merged
Approved by: John O'Brien
Approved revision: 31
Merged at revision: not available
Proposed branch: lp://qastaging/~cmiller/desktopcouch/cleaner-exceptions
Merge into: lp://qastaging/desktopcouch
Diff against target: None lines
To merge this branch: bzr merge lp://qastaging/~cmiller/desktopcouch/cleaner-exceptions
Reviewer Review Type Date Requested Status
John O'Brien (community) Approve
Eric Casteleijn (community) Approve
Review via email: mp+9945@code.qastaging.launchpad.net

Commit message

Use simpler code and more complex exception catching.

Also, change the name of a function tested to be what actually exists in the code.

To post a comment you must log in.
Revision history for this message
Eric Casteleijn (thisfred) wrote :

Changes look good, +1

review: Approve
31. By Chad Miller

Remove bogus import of "utils".

Revision history for this message
John O'Brien (jdobrien) wrote :

I got the error below, but thanks for fixing the other problems

===============================================================================
[ERROR]: desktopcouch.records.tests.test_field_registry.TestFieldMapping.test_mergeable_list_field_mapping

Traceback (most recent call last):
Failure: twisted.trial.util.DirtyReactorAggregateError: Reactor was unclean.
DelayedCalls: (set twisted.internet.base.DelayedCall.debug = True to debug)
<DelayedCall 47560752 [0.997409820557s] called=0 cancelled=0 LoopingCall<1.0>(exit_on_success, *(), **{})()>
<DelayedCall 47561184 [1.16833519936s] called=0 cancelled=0 reconnector()>
<DelayedCall 47542144 [28.9974460602s] called=0 cancelled=0 exit_on_timeout()>
-------------------------------------------------------------------------------
Ran 35 tests in 2.731s

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'desktopcouch/records/server.py'
2--- desktopcouch/records/server.py 2009-08-05 14:43:01 +0000
3+++ desktopcouch/records/server.py 2009-08-10 19:46:09 +0000
4@@ -135,7 +135,10 @@
5
6 # No atomic updates. Only read & mutate & write. Le sigh.
7 # First, get current contents.
8- view_container = self.db.get(doc_id, {'_id': doc_id })["views"]
9+ try:
10+ view_container = self.db[doc_id]["views"]
11+ except (KeyError, ResourceNotFound):
12+ raise KeyError
13
14 deleted_data = view_container.pop(view_name) # Remove target
15
16@@ -193,9 +196,9 @@
17 doc_id = "_design/%(design_doc)s" % locals()
18
19 try:
20- view_container = self.db.get(doc_id, {'_id': doc_id })["views"]
21+ view_container = self.db[doc_id]["views"]
22 return view_name in view_container
23- except KeyError:
24+ except (KeyError, ResourceNotFound):
25 return False
26
27 def list_views(self, design_doc):
28@@ -204,8 +207,8 @@
29 in it."""
30 doc_id = "_design/%(design_doc)s" % locals()
31 try:
32- return list(self.db.get(doc_id, {'_id': doc_id })["views"])
33- except KeyError:
34+ return list(self.db[doc_id]["views"])
35+ except (KeyError, ResourceNotFound):
36 return []
37
38 def get_records(self, record_type=None, create_view=False,
39@@ -221,12 +224,12 @@
40
41 You can use index notation on the result to get rows with a
42 particular record type.
43- =>> results = get_records_and_type()
44+ =>> results = get_records()
45 =>> for foo_document in results["foo"]:
46 ... print foo_document
47
48 Use slice notation to apply start-key and end-key options to the view.
49- =>> results = get_records_and_type()
50+ =>> results = get_records()
51 =>> people = results[['Person']:['Person','ZZZZ']]
52 """
53 if record_type == None:
54
55=== modified file 'desktopcouch/records/tests/test_server.py'
56--- desktopcouch/records/tests/test_server.py 2009-07-30 15:57:52 +0000
57+++ desktopcouch/records/tests/test_server.py 2009-08-10 19:46:09 +0000
58@@ -116,7 +116,7 @@
59 self.database.delete_view(view2_name, design_doc)
60 self.assertRaises(KeyError, self.database.delete_view, view2_name, design_doc)
61
62- def test_func_get_records_and_type(self):
63+ def test_func_get_records(self):
64 record_ids_we_care_about = set()
65 good_record_type = "http://example.com/unittest/good"
66 other_record_type = "http://example.com/unittest/bad"
67@@ -131,7 +131,7 @@
68 record_type=other_record_type)
69 self.database.put_record(record)
70
71- results = self.database.get_records_and_type(create_view=True)
72+ results = self.database.get_records(create_view=True)
73
74 for row in results[good_record_type]: # index notation
75 self.assertTrue(row.id in record_ids_we_care_about)
76@@ -153,10 +153,10 @@
77 self.assertEqual(self.database.list_views(design_doc), [])
78
79 def test_get_view_by_type_new_but_already(self):
80- self.database.get_records_and_type(create_view=True)
81- self.database.get_records_and_type(create_view=True)
82+ self.database.get_records(create_view=True)
83+ self.database.get_records(create_view=True)
84 # No exceptions on second run? Yay.
85
86 def test_get_view_by_type_createxcl_fail(self):
87- self.database.get_records_and_type(create_view=True)
88- self.assertRaises(KeyError, self.database.get_records_and_type, create_view=None)
89+ self.database.get_records(create_view=True)
90+ self.assertRaises(KeyError, self.database.get_records, create_view=None)

Subscribers

People subscribed via source and target branches