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
=== modified file 'desktopcouch/records/server.py'
--- desktopcouch/records/server.py 2009-08-05 14:43:01 +0000
+++ desktopcouch/records/server.py 2009-08-10 19:46:09 +0000
@@ -135,7 +135,10 @@
135135
136 # No atomic updates. Only read & mutate & write. Le sigh.136 # No atomic updates. Only read & mutate & write. Le sigh.
137 # First, get current contents.137 # First, get current contents.
138 view_container = self.db.get(doc_id, {'_id': doc_id })["views"]138 try:
139 view_container = self.db[doc_id]["views"]
140 except (KeyError, ResourceNotFound):
141 raise KeyError
139142
140 deleted_data = view_container.pop(view_name) # Remove target143 deleted_data = view_container.pop(view_name) # Remove target
141144
@@ -193,9 +196,9 @@
193 doc_id = "_design/%(design_doc)s" % locals()196 doc_id = "_design/%(design_doc)s" % locals()
194197
195 try:198 try:
196 view_container = self.db.get(doc_id, {'_id': doc_id })["views"]199 view_container = self.db[doc_id]["views"]
197 return view_name in view_container200 return view_name in view_container
198 except KeyError:201 except (KeyError, ResourceNotFound):
199 return False202 return False
200203
201 def list_views(self, design_doc):204 def list_views(self, design_doc):
@@ -204,8 +207,8 @@
204 in it."""207 in it."""
205 doc_id = "_design/%(design_doc)s" % locals()208 doc_id = "_design/%(design_doc)s" % locals()
206 try:209 try:
207 return list(self.db.get(doc_id, {'_id': doc_id })["views"])210 return list(self.db[doc_id]["views"])
208 except KeyError:211 except (KeyError, ResourceNotFound):
209 return []212 return []
210213
211 def get_records(self, record_type=None, create_view=False,214 def get_records(self, record_type=None, create_view=False,
@@ -221,12 +224,12 @@
221224
222 You can use index notation on the result to get rows with a 225 You can use index notation on the result to get rows with a
223 particular record type.226 particular record type.
224 =>> results = get_records_and_type()227 =>> results = get_records()
225 =>> for foo_document in results["foo"]:228 =>> for foo_document in results["foo"]:
226 ... print foo_document229 ... print foo_document
227 230
228 Use slice notation to apply start-key and end-key options to the view.231 Use slice notation to apply start-key and end-key options to the view.
229 =>> results = get_records_and_type()232 =>> results = get_records()
230 =>> people = results[['Person']:['Person','ZZZZ']]233 =>> people = results[['Person']:['Person','ZZZZ']]
231 """234 """
232 if record_type == None:235 if record_type == None:
233236
=== modified file 'desktopcouch/records/tests/test_server.py'
--- desktopcouch/records/tests/test_server.py 2009-07-30 15:57:52 +0000
+++ desktopcouch/records/tests/test_server.py 2009-08-10 19:46:09 +0000
@@ -116,7 +116,7 @@
116 self.database.delete_view(view2_name, design_doc)116 self.database.delete_view(view2_name, design_doc)
117 self.assertRaises(KeyError, self.database.delete_view, view2_name, design_doc)117 self.assertRaises(KeyError, self.database.delete_view, view2_name, design_doc)
118118
119 def test_func_get_records_and_type(self):119 def test_func_get_records(self):
120 record_ids_we_care_about = set()120 record_ids_we_care_about = set()
121 good_record_type = "http://example.com/unittest/good"121 good_record_type = "http://example.com/unittest/good"
122 other_record_type = "http://example.com/unittest/bad"122 other_record_type = "http://example.com/unittest/bad"
@@ -131,7 +131,7 @@
131 record_type=other_record_type)131 record_type=other_record_type)
132 self.database.put_record(record)132 self.database.put_record(record)
133133
134 results = self.database.get_records_and_type(create_view=True)134 results = self.database.get_records(create_view=True)
135135
136 for row in results[good_record_type]: # index notation136 for row in results[good_record_type]: # index notation
137 self.assertTrue(row.id in record_ids_we_care_about)137 self.assertTrue(row.id in record_ids_we_care_about)
@@ -153,10 +153,10 @@
153 self.assertEqual(self.database.list_views(design_doc), [])153 self.assertEqual(self.database.list_views(design_doc), [])
154154
155 def test_get_view_by_type_new_but_already(self):155 def test_get_view_by_type_new_but_already(self):
156 self.database.get_records_and_type(create_view=True)156 self.database.get_records(create_view=True)
157 self.database.get_records_and_type(create_view=True)157 self.database.get_records(create_view=True)
158 # No exceptions on second run? Yay.158 # No exceptions on second run? Yay.
159159
160 def test_get_view_by_type_createxcl_fail(self):160 def test_get_view_by_type_createxcl_fail(self):
161 self.database.get_records_and_type(create_view=True)161 self.database.get_records(create_view=True)
162 self.assertRaises(KeyError, self.database.get_records_and_type, create_view=None)162 self.assertRaises(KeyError, self.database.get_records, create_view=None)

Subscribers

People subscribed via source and target branches