Skip to content

Commit 2ce185c

Browse files
author
Vic Fryzel
committed
Adding tests for revisions for arbitrary file types.
1 parent 7edeb05 commit 2ce185c

2 files changed

Lines changed: 94 additions & 4 deletions

File tree

tests/gdata_tests/docs/live_client_test.py

Lines changed: 93 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323

2424
import os
25+
import time
2526
import unittest
2627
import gdata.client
2728
import gdata.data
@@ -106,9 +107,96 @@ def testGetRevisionFeed(self):
106107
uri = 'http://docs.google.com/feeds/default/private/full/-/document'
107108
feed = self.client.GetDocList(uri=uri, limit=1)
108109
self.assertEqual(len(feed.entry), 1)
109-
acl_feed = self.client.GetRevisions(feed.entry[0].resource_id.text)
110-
self.assert_(isinstance(acl_feed, gdata.docs.data.RevisionFeed))
111-
self.assert_(isinstance(acl_feed.entry[0], gdata.docs.data.Revision))
110+
revision_feed = self.client.GetRevisions(feed.entry[0].resource_id.text)
111+
self.assert_(isinstance(revision_feed, gdata.docs.data.RevisionFeed))
112+
self.assert_(isinstance(revision_feed.entry[0], gdata.docs.data.Revision))
113+
114+
115+
class DocsRevisionsTest(DocsTestCase):
116+
117+
def setUp(self):
118+
self.client = None
119+
if conf.options.get_value('runlive') == 'true':
120+
self.client = gdata.docs.client.DocsClient()
121+
self.client.ssl = conf.options.get_value('ssl') == 'true'
122+
conf.configure_client(self.client, 'DocsTest', self.client.auth_service)
123+
conf.configure_cache(self.client, 'testDocsRevisions')
124+
try:
125+
self.testdoc = self.client.Create(
126+
gdata.docs.data.DOCUMENT_LABEL, 'My Doc')
127+
# Because of an etag change issue, we must sleep for a few seconds
128+
time.sleep(10)
129+
except:
130+
self.tearDown()
131+
raise
132+
try:
133+
self.testdoc = self.client.GetDoc(self.testdoc.resource_id.text)
134+
self.testfile = self.client.Upload(
135+
'test.bin', 'My Binary File', content_type='application/octet-stream')
136+
# Because of an etag change issue, we must sleep for a few seconds
137+
time.sleep(10)
138+
self.testfile = self.client.GetDoc(self.testfile.resource_id.text)
139+
except:
140+
self.tearDown()
141+
raise
142+
143+
def tearDown(self):
144+
if conf.options.get_value('runlive') == 'true':
145+
# Do a best effort tearDown, so pass on any exception
146+
try:
147+
self.client.Delete(self.testdoc)
148+
except:
149+
pass
150+
try:
151+
self.client.Delete(self.testfile)
152+
except:
153+
pass
154+
conf.close_client(self.client)
155+
156+
def testArbFileRevisions(self):
157+
if not conf.options.get_value('runlive') == 'true':
158+
return
159+
revisions = self.client.GetRevisions(self.testfile.resource_id.text)
160+
self.assert_(isinstance(revisions, gdata.docs.data.RevisionFeed))
161+
self.assert_(isinstance(revisions.entry[0], gdata.docs.data.Revision))
162+
self.assertEqual(len(revisions.entry), 1)
163+
164+
ms = gdata.data.MediaSource(
165+
file_path='test.bin', content_type='application/octet-stream')
166+
self.testfile.title.text = 'My Binary File Updated'
167+
self.testfile = self.client.Update(self.testfile, media_source=ms)
168+
self.assertEqual(self.testfile.title.text, 'My Binary File Updated')
169+
170+
revisions = self.client.GetRevisions(self.testfile.resource_id.text)
171+
self.assert_(isinstance(revisions, gdata.docs.data.RevisionFeed))
172+
self.assert_(isinstance(revisions.entry[0], gdata.docs.data.Revision))
173+
self.assert_(isinstance(revisions.entry[1], gdata.docs.data.Revision))
174+
self.assertEqual(len(revisions.entry), 2)
175+
176+
self.client.Delete(revisions.entry[1], force=True)
177+
revisions = self.client.GetRevisions(self.testfile.resource_id.text)
178+
self.assert_(isinstance(revisions, gdata.docs.data.RevisionFeed))
179+
self.assert_(isinstance(revisions.entry[0], gdata.docs.data.Revision))
180+
self.assertEqual(len(revisions.entry), 1)
181+
182+
def testDocRevisions(self):
183+
if not conf.options.get_value('runlive') == 'true':
184+
return
185+
revisions = self.client.GetRevisions(self.testdoc.resource_id.text)
186+
self.assert_(isinstance(revisions, gdata.docs.data.RevisionFeed))
187+
self.assert_(isinstance(revisions.entry[0], gdata.docs.data.Revision))
188+
self.assertEqual(len(revisions.entry), 1)
189+
190+
ms = gdata.data.MediaSource(
191+
file_path='test.doc', content_type='application/msword')
192+
self.testdoc.title.text = 'My Doc Updated'
193+
self.testdoc = self.client.Update(self.testdoc, media_source=ms)
194+
195+
revisions = self.client.GetRevisions(self.testdoc.resource_id.text)
196+
self.assert_(isinstance(revisions, gdata.docs.data.RevisionFeed))
197+
self.assert_(isinstance(revisions.entry[0], gdata.docs.data.Revision))
198+
self.assert_(isinstance(revisions.entry[1], gdata.docs.data.Revision))
199+
self.assertEqual(len(revisions.entry), 2)
112200

113201

114202
class CreatingAndDeletionTest(DocsTestCase):
@@ -255,7 +343,8 @@ def testDownloadPdf(self):
255343

256344
def suite():
257345
return conf.build_suite([DocsFetchingDataTest, CreatingAndDeletionTest,
258-
DocumentListUploadTest, DocumentListExportTest])
346+
DocumentListUploadTest, DocumentListExportTest,
347+
DocsRevisionsTest])
259348

260349

261350
if __name__ == '__main__':

tests/gdata_tests/docs/test.bin

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1234

0 commit comments

Comments
 (0)