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
def setUp(self): self.access_token = u'yH6sjP98UBwbuwpDJpE5dtI6TF2La9' self.access_token_secret = u'dMW3WcN8bhVtH70xeAMJnasdGgoIbL' self.connect = Api()
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
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