~chicharreros/magicicada-server/trunk

« back to all changes in this revision

Viewing changes to magicicada/rpcdb/tests/test_backend.py

  • Committer: Magicicada Bot
  • Author(s): Facundo Batista
  • Date: 2017-01-08 23:37:32 UTC
  • mfrom: (79.1.2 publicfiles)
  • Revision ID: magicicada_bot-20170108233732-faaeoq6sc9jorgue
[r=nataliabidart] Support public files changing and listing through the normal Server.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright 2008-2015 Canonical
2
 
# Copyright 2015 Chicharreros (https://launchpad.net/~chicharreros)
 
2
# Copyright 2015-2016 Chicharreros (https://launchpad.net/~chicharreros)
3
3
#
4
4
# This program is free software: you can redistribute it and/or modify
5
5
# it under the terms of the GNU Affero General Public License as
243
243
        self.assertEqual(udf2['path'], 'path2')
244
244
        self.assertEqual(udf2['generation'], 8)
245
245
 
 
246
    def test_change_public_access(self):
 
247
        """Change the public acces of a node."""
 
248
        mocker = Mocker()
 
249
 
 
250
        # node, with a generation attribute
 
251
        node = mocker.mock()
 
252
        expect(node.public_url).result('test public url')
 
253
 
 
254
        # user, with the chained calls to the action
 
255
        user = mocker.mock()
 
256
        expect(
 
257
            user.volume('vol_id').node('node_id').change_public_access(True)
 
258
        ).result(node)
 
259
        self.backend._get_user = lambda *a: user
 
260
 
 
261
        with mocker:
 
262
            kwargs = dict(user_id='user_id', volume_id='vol_id',
 
263
                          node_id='node_id', is_public=True,
 
264
                          session_id='session_id')
 
265
            result = self.backend.change_public_access(**kwargs)
 
266
 
 
267
        self.assertEqual(result, dict(public_url='test public url'))
 
268
 
 
269
    def test_list_public_files(self):
 
270
        """List public files."""
 
271
        mocker = Mocker()
 
272
 
 
273
        # node 1
 
274
        node1 = mocker.mock()
 
275
        expect(node1.id).result('node_id1')
 
276
        expect(node1.path).result('path1')
 
277
        expect(node1.name).result('name1')
 
278
        expect(node1.vol_id).result('volume_id1')
 
279
        expect(node1.generation).result('generation1')
 
280
        expect(node1.is_public).result(True)
 
281
        expect(node1.parent_id).result('parent_id1')
 
282
        expect(node1.status).result(STATUS_LIVE)
 
283
        expect(node1.content_hash).result('content_hash1')
 
284
        expect(node1.kind).result(StorageObject.FILE)
 
285
        expect(node1.when_last_modified).result('last_modified1')
 
286
        content1 = mocker.mock()
 
287
        expect(content1.size).result('size1')
 
288
        expect(content1.crc32).result('crc321')
 
289
        expect(content1.deflated_size).result('deflated_size1')
 
290
        expect(content1.storage_key).result('storage_key1')
 
291
        expect(node1.content).result(content1)
 
292
        expect(node1.public_url).result('public url 1')
 
293
 
 
294
        # node 2
 
295
        node2 = mocker.mock()
 
296
        expect(node2.id).result('node_id2')
 
297
        expect(node2.path).result('path2')
 
298
        expect(node2.name).result('name2')
 
299
        expect(node2.vol_id).result('volume_id2')
 
300
        expect(node2.generation).result('generation2')
 
301
        expect(node2.is_public).result(True)
 
302
        expect(node2.parent_id).result('parent_id2')
 
303
        expect(node2.status).result(STATUS_DEAD)
 
304
        expect(node2.content_hash).result('content_hash2')
 
305
        expect(node2.kind).result(StorageObject.DIRECTORY)
 
306
        expect(node2.when_last_modified).result('last_modified2')
 
307
        content2 = mocker.mock()
 
308
        expect(content2.size).result('size2')
 
309
        expect(content2.crc32).result('crc322')
 
310
        expect(content2.deflated_size).result('deflated_size2')
 
311
        expect(content2.storage_key).result('storage_key2')
 
312
        expect(node2.content).result(content2)
 
313
        expect(node2.public_url).result('public url 2')
 
314
 
 
315
        # user
 
316
        user = mocker.mock()
 
317
        self.backend._get_user = lambda *a: user
 
318
        expect(user.get_public_files()).result([node1, node2])
 
319
 
 
320
        with mocker:
 
321
            result = self.backend.list_public_files(user_id='user_id',)
 
322
        node1, node2 = result['public_files']
 
323
 
 
324
        self.assertEqual(node1['id'], 'node_id1')
 
325
        self.assertEqual(node1['path'], 'path1')
 
326
        self.assertEqual(node1['name'], 'name1')
 
327
        self.assertEqual(node1['volume_id'], 'volume_id1')
 
328
        self.assertEqual(node1['parent_id'], 'parent_id1')
 
329
        self.assertEqual(node1['is_live'], True)
 
330
        self.assertEqual(node1['generation'], 'generation1')
 
331
        self.assertEqual(node1['is_public'], True)
 
332
        self.assertEqual(node1['content_hash'], 'content_hash1')
 
333
        self.assertEqual(node1['is_file'], True)
 
334
        self.assertEqual(node1['size'], 'size1')
 
335
        self.assertEqual(node1['crc32'], 'crc321')
 
336
        self.assertEqual(node1['deflated_size'], 'deflated_size1')
 
337
        self.assertEqual(node1['storage_key'], 'storage_key1')
 
338
        self.assertEqual(node1['last_modified'], 'last_modified1')
 
339
        self.assertEqual(node1['public_url'], 'public url 1')
 
340
 
 
341
        self.assertEqual(node2['id'], 'node_id2')
 
342
        self.assertEqual(node2['path'], 'path2')
 
343
        self.assertEqual(node2['name'], 'name2')
 
344
        self.assertEqual(node2['volume_id'], 'volume_id2')
 
345
        self.assertEqual(node2['parent_id'], 'parent_id2')
 
346
        self.assertEqual(node2['is_live'], False)
 
347
        self.assertEqual(node2['generation'], 'generation2')
 
348
        self.assertEqual(node2['is_public'], True)
 
349
        self.assertEqual(node2['content_hash'], 'content_hash2')
 
350
        self.assertEqual(node2['is_file'], False)
 
351
        self.assertEqual(node2['size'], 'size2')
 
352
        self.assertEqual(node2['crc32'], 'crc322')
 
353
        self.assertEqual(node2['deflated_size'], 'deflated_size2')
 
354
        self.assertEqual(node2['storage_key'], 'storage_key2')
 
355
        self.assertEqual(node2['last_modified'], 'last_modified2')
 
356
        self.assertEqual(node2['public_url'], 'public url 2')
 
357
 
246
358
    def test_move(self):
247
359
        """Move."""
248
360
        mocker = Mocker()
706
818
        expect(content.deflated_size).result('deflated_size')
707
819
        expect(content.storage_key).result('storage_key')
708
820
        expect(node.content).count(1).result(content)
 
821
        expect(node.public_url).result(None)
709
822
 
710
823
        # user
711
824
        user = mocker.mock()
722
835
                      last_modified='last_modified', crc32='crc32',
723
836
                      generation='generation', content_hash='content_hash',
724
837
                      deflated_size='deflated_size', storage_key='storage_key',
725
 
                      volume_id='volume_id', path='path', has_content=True)
 
838
                      volume_id='volume_id', path='path', has_content=True,
 
839
                      public_url=None)
726
840
        self.assertEqual(result, should)
727
841
 
728
842
    def test_get_node_no_content(self):
743
857
        expect(node.kind).result(StorageObject.FILE)
744
858
        expect(node.when_last_modified).result('last_modified')
745
859
        expect(node.content).result(None)
 
860
        expect(node.public_url).result(None)
746
861
 
747
862
        # user
748
863
        user = mocker.mock()
758
873
                      is_public=False, is_live=True, is_file=True, size=None,
759
874
                      last_modified='last_modified', crc32=None,
760
875
                      generation='generation', content_hash='content_hash',
761
 
                      deflated_size=None, storage_key=None,
 
876
                      deflated_size=None, storage_key=None, public_url=None,
762
877
                      volume_id='volume_id', path="path", has_content=False)
763
878
        self.assertEqual(result, should)
764
879
 
780
895
        expect(node.kind).result(StorageObject.FILE)
781
896
        expect(node.when_last_modified).result('last_modified')
782
897
        expect(node.content).count(1).result(None)
 
898
        expect(node.public_url).result(None)
783
899
 
784
900
        # user
785
901
        user = mocker.mock()
798
914
                      is_public=False, is_live=True, is_file=True, size=None,
799
915
                      last_modified='last_modified', crc32=None,
800
916
                      generation='generation', content_hash='content_hash',
801
 
                      deflated_size=None, storage_key=None,
 
917
                      deflated_size=None, storage_key=None, public_url=None,
802
918
                      volume_id='volume_id', path='path', has_content=False)
803
919
        self.assertEqual(result, should)
804
920
 
825
941
        expect(content1.deflated_size).count(2).result('deflated_size1')
826
942
        expect(content1.storage_key).count(2).result('storage_key1')
827
943
        expect(node1.content).count(2).result(content1)
 
944
        expect(node1.public_url).count(2).result('public url')
828
945
 
829
946
        # node 2
830
947
        node2 = mocker.mock()
845
962
        expect(content2.deflated_size).count(2).result('deflated_size2')
846
963
        expect(content2.storage_key).count(2).result('storage_key2')
847
964
        expect(node2.content).count(2).result(content2)
 
965
        expect(node2.public_url).count(2).result(None)
848
966
 
849
967
        # user
850
968
        user = mocker.mock()
880
998
        self.assertEqual(node1['deflated_size'], 'deflated_size1')
881
999
        self.assertEqual(node1['storage_key'], 'storage_key1')
882
1000
        self.assertEqual(node1['last_modified'], 'last_modified1')
 
1001
        self.assertEqual(node1['public_url'], 'public url')
883
1002
 
884
1003
        self.assertEqual(node2['id'], 'node_id2')
885
1004
        self.assertEqual(node2['path'], 'path2')
896
1015
        self.assertEqual(node2['deflated_size'], 'deflated_size2')
897
1016
        self.assertEqual(node2['storage_key'], 'storage_key2')
898
1017
        self.assertEqual(node2['last_modified'], 'last_modified2')
 
1018
        self.assertEqual(node2['public_url'], None)
899
1019
 
900
1020
    def test_get_user(self):
901
1021
        """Get accessable nodes and their hashes."""