Example #1
0
from django.views.decorators.cache import cache_control
from django.core.mail import send_mail
from django.conf import settings
from django.utils.translation import ugettext as _
from requests_oauthlib import OAuth1

import requests
import psycopg2
import json
import easywebdav
from stacksync import keystone
from stacksync.connection_api import Api
from stacksync.bread_crumbs import BreadCrumbs
from stacksync.forms import contact_form

connect = Api()
breadcrumbs = BreadCrumbs()
path = []
global webdav
global owncloud_loaded
owncloud_loaded = False


#Funcion encargada del loggin del usuario
#Input:  -request, recibe los parametros generales de django
#Output: -se devuelve httpResponse cuando falla el acceso por usuario invalido o error de stacksync
#        -se devuelve HttpResponseRedirect cuando se conecta correctamente
#        -se devuelve render_to_response para redirigir a la pantalla de login si el usuario ha introducido mal alguno de los datos
def log_in(request):
    global owncloud_loaded
    owncloud_loaded = False
Example #2
0
 def setUp(self):
     self.access_token = u'yH6sjP98UBwbuwpDJpE5dtI6TF2La9'
     self.access_token_secret = u'dMW3WcN8bhVtH70xeAMJnasdGgoIbL'
     self.connect = Api()
Example #3
0
 def setUp(self):
     self.access_token = u'yH6sjP98UBwbuwpDJpE5dtI6TF2La9'
     self.access_token_secret = u'dMW3WcN8bhVtH70xeAMJnasdGgoIbL'
     self.connect = Api()
Example #4
0
class StacksyncAPIMockedTests(unittest.TestCase):
    def setUp(self):
        self.access_token = u'yH6sjP98UBwbuwpDJpE5dtI6TF2La9'
        self.access_token_secret = u'dMW3WcN8bhVtH70xeAMJnasdGgoIbL'
        self.connect = Api()

    def test_root_metadata(self):
        requests.get = MagicMock(return_value=self.fake_request_response())
        root_contents = self.connect.metadata(self.access_token, self.access_token_secret)
        self.assertEquals(len(root_contents), 3)

    def fake_metadata_contents(self):
        return {u'status': None, u'mimetype': None, u'checksum': None, u'filename': u'root', u'is_root': True,
                u'parent_id': None, u'version': None, u'is_folder': True, u'id': None,
                u'contents': [
                        {u'status': u'RENAMED', u'mimetype': u'text/x-python', u'checksum': 1249793342,
                         u'modified_at': u'2014-07-04 12:42:21.238', u'filename': u'null', u'parent_id': None,
                         u'version': 2, u'is_folder': False, u'chunks': [], u'id': 1, u'size': 968
                        },
                        {u'status': u'RENAMED', u'mimetype': u'inode/directory', u'checksum': 0, u'modified_at': u'2014-07-04 12:47:18.632',
                         u'filename': u'foldi', u'is_root': False, u'parent_id': None, u'version': 2, u'is_folder': True, u'id': 2, u'size': 0
                        },
                        {u'status': u'RENAMED', u'mimetype': u'text/plain', u'checksum': 3037139449L, u'modified_at': u'2014-07-18 13:19:09.388',
                         u'filename': u'ffff', u'parent_id': None, u'version': 2, u'is_folder': False, u'chunks': [], u'id': 6, u'size': 51}
                    ]
                , u'size': None}

    def fake_request_response(self):
        request = MagicMock()
        request.status_code = 200
        request.content = json.dumps(self.fake_metadata_contents())
        return request

    def test_shared_folder(self):
        """
        content:
        :return:
        """
        share_to = ["*****@*****.**", "*****@*****.**"]
        # share_to = []
        folder_id = 9
        requests.post = MagicMock(return_value=self.fake_post_share_to())
        response = self.connect.share_folder(folder_id, share_to, self.access_token, self.access_token_secret)
        self.assertEquals(response.status_code, 201)

    def fake_post_share_to(self):
        response = MagicMock()
        response.content = '{"shared_to":[{"name":"joe","email":"*****@*****.**"},{"name":"walter","email":"*****@*****.**"},{"name":"foo","email":"*****@*****.**"}]}'
        response.status_code = 201

        return response

    def test_get_members_of_shared_folder(self):
        share_to = ["*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**"]
        folder_id = 7

        requests.post = MagicMock(return_value=self.get_fake_members_of_folder())
        response = self.connect.get_members_of_folder(folder_id, self.access_token, self.access_token_secret)
        for user in response:
            self.assertIn(user['email'], share_to)

    def get_fake_members_of_folder(self):
        return [{u'joined_at': u'2014-07-21', u'is_owner': False, u'name': u'walter', u'email': u'*****@*****.**'},
                {u'joined_at': u'2014-07-21', u'is_owner': True, u'name': u'al', u'email': u'*****@*****.**'},
                {u'joined_at': u'2014-07-21', u'is_owner': False, u'name': u'joe', u'email': u'*****@*****.**'},
                {u'joined_at': u'2014-07-21', u'is_owner': False, u'name': u'foo', u'email': u'*****@*****.**'}
        ]

    def test_unshare_a_folder(self):
        pass
Example #5
0
class StacksyncAPIMockedTests(unittest.TestCase):
    def setUp(self):
        self.access_token = u'yH6sjP98UBwbuwpDJpE5dtI6TF2La9'
        self.access_token_secret = u'dMW3WcN8bhVtH70xeAMJnasdGgoIbL'
        self.connect = Api()

    def test_root_metadata(self):
        requests.get = MagicMock(return_value=self.fake_request_response())
        root_contents = self.connect.metadata(self.access_token,
                                              self.access_token_secret)
        self.assertEquals(len(root_contents), 3)

    def fake_metadata_contents(self):
        return {
            u'status':
            None,
            u'mimetype':
            None,
            u'checksum':
            None,
            u'filename':
            u'root',
            u'is_root':
            True,
            u'parent_id':
            None,
            u'version':
            None,
            u'is_folder':
            True,
            u'id':
            None,
            u'contents': [{
                u'status': u'RENAMED',
                u'mimetype': u'text/x-python',
                u'checksum': 1249793342,
                u'modified_at': u'2014-07-04 12:42:21.238',
                u'filename': u'null',
                u'parent_id': None,
                u'version': 2,
                u'is_folder': False,
                u'chunks': [],
                u'id': 1,
                u'size': 968
            }, {
                u'status': u'RENAMED',
                u'mimetype': u'inode/directory',
                u'checksum': 0,
                u'modified_at': u'2014-07-04 12:47:18.632',
                u'filename': u'foldi',
                u'is_root': False,
                u'parent_id': None,
                u'version': 2,
                u'is_folder': True,
                u'id': 2,
                u'size': 0
            }, {
                u'status': u'RENAMED',
                u'mimetype': u'text/plain',
                u'checksum': 3037139449L,
                u'modified_at': u'2014-07-18 13:19:09.388',
                u'filename': u'ffff',
                u'parent_id': None,
                u'version': 2,
                u'is_folder': False,
                u'chunks': [],
                u'id': 6,
                u'size': 51
            }],
            u'size':
            None
        }

    def fake_request_response(self):
        request = MagicMock()
        request.status_code = 200
        request.content = json.dumps(self.fake_metadata_contents())
        return request

    def test_shared_folder(self):
        """
        content:
        :return:
        """
        share_to = ["*****@*****.**", "*****@*****.**"]
        # share_to = []
        folder_id = 9
        requests.post = MagicMock(return_value=self.fake_post_share_to())
        response = self.connect.share_folder(folder_id, share_to,
                                             self.access_token,
                                             self.access_token_secret)
        self.assertEquals(response.status_code, 201)

    def fake_post_share_to(self):
        response = MagicMock()
        response.content = '{"shared_to":[{"name":"joe","email":"*****@*****.**"},{"name":"walter","email":"*****@*****.**"},{"name":"foo","email":"*****@*****.**"}]}'
        response.status_code = 201

        return response

    def test_get_members_of_shared_folder(self):
        share_to = [
            "*****@*****.**", "*****@*****.**", "*****@*****.**",
            "*****@*****.**"
        ]
        folder_id = 7

        requests.post = MagicMock(
            return_value=self.get_fake_members_of_folder())
        response = self.connect.get_members_of_folder(folder_id,
                                                      self.access_token,
                                                      self.access_token_secret)
        for user in response:
            self.assertIn(user['email'], share_to)

    def get_fake_members_of_folder(self):
        return [{
            u'joined_at': u'2014-07-21',
            u'is_owner': False,
            u'name': u'walter',
            u'email': u'*****@*****.**'
        }, {
            u'joined_at': u'2014-07-21',
            u'is_owner': True,
            u'name': u'al',
            u'email': u'*****@*****.**'
        }, {
            u'joined_at': u'2014-07-21',
            u'is_owner': False,
            u'name': u'joe',
            u'email': u'*****@*****.**'
        }, {
            u'joined_at': u'2014-07-21',
            u'is_owner': False,
            u'name': u'foo',
            u'email': u'*****@*****.**'
        }]

    def test_unshare_a_folder(self):
        pass