|
9 | 9 | import doctest
|
10 | 10 | import os
|
11 | 11 | import unittest
|
| 12 | +import StringIO |
12 | 13 |
|
13 | 14 | from couchdb import client
|
14 | 15 |
|
@@ -72,7 +73,28 @@ def test_attachment_crud(self):
|
72 | 73 | self.db.delete_attachment(doc, 'foo.txt')
|
73 | 74 | self.assertNotEquals(old_rev, doc['_rev'])
|
74 | 75 | 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']) |
75 | 85 |
|
| 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')) |
76 | 98 |
|
77 | 99 | def suite():
|
78 | 100 | suite = unittest.TestSuite()
|
|
0 commit comments