Skip to content
Open
2 changes: 1 addition & 1 deletion conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def context(
current_video_name = context.current_video_name
current_video_path = current_video_name
updated_video_path = os.path.join(
video_path, f"{request.node.originalname}_{browser_name}.webm"
video_path, f"{request.node.originalname}_{browser_name}.mp4"
)
context.close()
os.rename(current_video_path, updated_video_path)
Expand Down
37 changes: 33 additions & 4 deletions controllers/expedientes.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@
__author__ = "María Andrea Vignau (mavignau@gmail.com)"
__copyright__ = "(C) 2016 María Andrea Vignau. GNU GPL 3."


linked_tables = ['movimiento', 'agenda', 'parte']
import zipfile
import io
LINKED_TABLES = ['movimiento', 'agenda', 'parte']
ZIP_FILENAME = 'Movimiento.zip'
CHUNK_SIZE = 4096


@auth.requires_login()
Expand Down Expand Up @@ -50,7 +53,7 @@ def index():
constraints={
'expediente': (
db.expediente.created_by == auth.user.id)},
linked_tables=linked_tables,
linked_tables=LINKED_TABLES,
buttons_placement='right',
exportclasses=myexport,
advanced_search=False,
Expand All @@ -64,6 +67,28 @@ def index():
return locals()


@auth.requires_login()
def download():
tempfile = io.BytesIO()
temparchive = zipfile.ZipFile(tempfile, 'w', zipfile.ZIP_DEFLATED)
rows = db(db.movimiento.archivo != None).select()
try:
for file_id in rows:
file_single = file_id.archivo
if file_single:
file_loc = db.movimiento.archivo.retrieve_file_properties(file_single)['path']+ '/' + file_single
file_name = db.movimiento.archivo.retrieve_file_properties(file_single)['filename']
temparchive.write(file_loc, file_name)
finally:
temparchive.close()
tempfile.seek(0)

response.headers['Content-Type'] = 'application/zip'
response.headers['Content-Disposition'] = 'attachment; filename = %s' % ZIP_FILENAME
res = response.stream(tempfile, CHUNK_SIZE)
return res


def vista_expediente():
'muestra un panel a la izquierda que tiene los datos del expediente y permite navegar en él'
expte = SQLFORM(db.expediente,
Expand All @@ -81,11 +106,15 @@ def vista_expediente():
user_signature=True)
links = [A('Expediente', _href=url, _type='button',
_class='btn btn-default')]
for k in linked_tables:
for k in LINKED_TABLES:
args = ['expediente', '%s.expediente_id' % k, request.args[0]]
url = URL('index', args=args, user_signature=True)
text = SPAN(k.capitalize() + 's', _class='buttontext button')
links.append(A(text, _href=url, _type='button',
_class='btn btn-default'))
url = URL('download', args='movimiento.archivo') #Boton de descarga
text1="Descarga"
links.append(A(text1, _href=url, _type='button',
_class='btn btn-default'))

return dict(links=links, expte=expte)
47 changes: 37 additions & 10 deletions tests/test_user.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
def login(page):
page.click("text=Log In")
page.click(":nth-match(:text(\"Log In\"), 2)")
page.fill("input[name=\"email\"]", "example@example.com")
page.press("input[name=\"email\"]", "Tab")
page.fill("input[name=\"password\"]", "openlex1234")
page.click("input:has-text(\"Log In\")")

def test_register(page):
# ir a la página de inicio (ver pytest.ini para la url base)
page.goto("")
Expand Down Expand Up @@ -30,15 +38,34 @@ def test_login(page):
# ir a la página de inicio (ver pytest.ini para la url base)
page.goto("")
# desplegar el menu, ir a la página de registración (y confirmar url)
page.click("text=Log In")
page.click(":nth-match(:text(\"Log In\"), 2)")
assert page.url.endswith("/OpenLex/default/user/login?_next=/OpenLex/default/index")

# complear el formulario:
page.fill("input[name=\"email\"]", "example@example.com")
page.press("input[name=\"email\"]", "Tab")
page.fill("input[name=\"password\"]", "openlex1234")
page.click("input:has-text(\"Log In\")")

login(page)
# confirmar
assert page.url.endswith("/dashboard/view#")


def test_upload_expedientes(page):
page.goto("")
login(page)
page.click("css=[alt=Expedientes]")
assert page.url.endswith("/expedientes/index")
page.click("text=Agregar")
page.fill("input[name=\"numero\"]", "1111")
page.press("input[name=\"numero\"]", "Tab")
page.fill("input[name=\"caratula\"]", "ssdd")
page.click("input:has-text(\"Enviar\")")


def test_download(page):
page.goto("")
page.setDefaultTimeout(10000)
login(page)
page.goto("expedientes/index")
page.click("text=Movimientos")
with page.expect_download() as download_info:
# Perform the action that initiates download
page.click("text=Descarga")
download = download_info.value
# Wait for the download process to complete
name = download.suggested_filename
#cut_link = link[22:]
assert "Movimiento.zip" == name