Merge lp:~statik/desktopcouch/urllibquote into lp:desktopcouch

Proposed by Elliot Murphy
Status: Merged
Approved by: Elliot Murphy
Approved revision: 32
Merged at revision: not available
Proposed branch: lp:~statik/desktopcouch/urllibquote
Merge into: lp:desktopcouch
Diff against target: None lines
To merge this branch: bzr merge lp:~statik/desktopcouch/urllibquote
Reviewer Review Type Date Requested Status
Ubuntu One hackers Pending
Review via email: mp+9952@code.launchpad.net

Commit message

Don't create a view per record-type; instead, call the standard return-all-records-keyed-by-record-type and use slice notation on the viewresults to only get back the records with that type, which does the same thing but more elegantly.

To post a comment you must log in.
Revision history for this message
Elliot Murphy (statik) wrote :

I am hijacking https://code.edge.launchpad.net/~sil/desktopcouch/urllibquote/+merge/9778 to fix a merge conflict and get it landed already!

lp:~statik/desktopcouch/urllibquote updated
33. By Elliot Murphy

Merged from trunk, resolved a conflict, and deleted a commented line.

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-10 19:46:09 +0000
+++ desktopcouch/records/server.py 2009-08-10 21:32:52 +0000
@@ -21,6 +21,7 @@
2121
22"""The Desktop Couch Records API."""22"""The Desktop Couch Records API."""
2323
24import urllib
24from couchdb import Server25from couchdb import Server
25from couchdb.client import ResourceNotFound, ResourceConflict26from couchdb.client import ResourceNotFound, ResourceConflict
26from couchdb.design import ViewDefinition27from couchdb.design import ViewDefinition
@@ -232,12 +233,8 @@
232 =>> results = get_records()233 =>> results = get_records()
233 =>> people = results[['Person']:['Person','ZZZZ']]234 =>> people = results[['Person']:['Person','ZZZZ']]
234 """235 """
235 if record_type == None:236 view_name = "get_records_and_type"
236 view_name = "get_records_and_type"237 view_map_js = """function(doc) { emit(doc.record_type, doc) }"""
237 view_map_js = """function(doc) { emit(doc.record_type, doc) }"""
238 else:
239 view_name = "get_" + record_type
240 view_map_js = """function(doc) {if(doc.record_type == '%s') { emit(doc._id, doc); }}""" %record_type
241238
242 if design_doc is None:239 if design_doc is None:
243 design_doc = view_name240 design_doc = view_name
@@ -253,5 +250,10 @@
253250
254 if not exists:251 if not exists:
255 self.add_view(view_name, view_map_js, None, design_doc)252 self.add_view(view_name, view_map_js, None, design_doc)
253
254 viewdata = self.execute_view(view_name, design_doc)
255 if record_type is None:
256 return viewdata
257 else:
258 return viewdata[record_type]
256259
257 return self.execute_view(view_name, design_doc)
258260
=== modified file 'desktopcouch/records/tests/test_server.py' (properties changed: -x to +x)
--- desktopcouch/records/tests/test_server.py 2009-08-10 20:55:48 +0000
+++ desktopcouch/records/tests/test_server.py 2009-08-10 21:32:52 +0000
@@ -41,10 +41,21 @@
41 self.dbname = self._testMethodName41 self.dbname = self._testMethodName
42 self.database = CouchDatabase(self.dbname, create=True)42 self.database = CouchDatabase(self.dbname, create=True)
4343
44 #create some records to pull out and test
45 self.database.put_record(Record({"key1_1":"val1_1","key1_2":"val1_2","key1_3":"val1_3","record_type":"test.com"}))
46 self.database.put_record(Record({"key2_1":"val2_1","key2_2":"val2_2","key2_3":"val2_3","record_type":"test.com"}))
47 self.database.put_record(Record({"key13_1":"va31_1","key3_2":"val3_2","key3_3":"val3_3","record_type":"test.com"}))
48
44 def tearDown(self):49 def tearDown(self):
45 """tear down each test"""50 """tear down each test"""
46 del self.database._server[self.dbname]51 del self.database._server[self.dbname]
4752
53 def test_get_records_by_record_type_save_view(self):
54 """Test getting mutliple records by type"""
55 records = self.database.get_records(record_type="test.com",create_view=True)
56 self.assertEqual(3,len(records))
57
58
48 def test_get_record(self):59 def test_get_record(self):
49 """Test getting a record."""60 """Test getting a record."""
50 record = Record({'record_number': 0}, record_type="http://example.com/")61 record = Record({'record_number': 0}, record_type="http://example.com/")

Subscribers

People subscribed via source and target branches