Skip to content

Commit 3cf74fc

Browse files
committed
Add test for file interface in put_attachment
--HG-- extra : convert_revision : svn%3A7a298fb0-333a-0410-83e7-658617cd9cf3/trunk%40101
1 parent a0d3152 commit 3cf74fc

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

couchdb/tests/client.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import doctest
1010
import os
1111
import unittest
12+
import StringIO
1213

1314
from couchdb import client
1415

@@ -72,7 +73,28 @@ def test_attachment_crud(self):
7273
self.db.delete_attachment(doc, 'foo.txt')
7374
self.assertNotEquals(old_rev, doc['_rev'])
7475
self.assertEqual(None, self.db['foo'].get('_attachments'))
76+
77+
def test_attachment_crud_with_files(self):
78+
doc = {'bar': 42}
79+
self.db['foo'] = doc
80+
old_rev = doc['_rev']
81+
f = StringIO.StringIO('Foo bar baz')
82+
83+
self.db.put_attachment(doc, 'foo.txt', f, 'text/plain')
84+
self.assertNotEquals(old_rev, doc['_rev'])
7585

86+
doc = self.db['foo']
87+
attachment = doc['_attachments']['foo.txt']
88+
self.assertEqual(len('Foo bar baz'), attachment['length'])
89+
self.assertEqual('text/plain', attachment['content_type'])
90+
91+
self.assertEqual('Foo bar baz', self.db.get_attachment(doc, 'foo.txt'))
92+
self.assertEqual('Foo bar baz', self.db.get_attachment('foo', 'foo.txt'))
93+
94+
old_rev = doc['_rev']
95+
self.db.delete_attachment(doc, 'foo.txt')
96+
self.assertNotEquals(old_rev, doc['_rev'])
97+
self.assertEqual(None, self.db['foo'].get('_attachments'))
7698

7799
def suite():
78100
suite = unittest.TestSuite()

0 commit comments

Comments
 (0)