remove unused code from backups

This commit is contained in:
Andreas Zweili 2020-11-30 14:29:36 +01:00
parent c6bb767138
commit 55e0a2610d
8 changed files with 0 additions and 328 deletions

View File

@ -1,17 +0,0 @@
from django.http import HttpResponseForbidden
from django.shortcuts import get_object_or_404
from .models import Backup
def backup_view_permission(old_fuction):
def new_function(request, pk, *args, **kwargs):
backup = get_object_or_404(Backup, pk=pk)
user = request.user
if user.has_perm('customers.view_customer', backup.computer.customer):
return old_fuction(request, pk)
else:
return HttpResponseForbidden(
"You're not allowed to access this device."
)
return new_function

View File

@ -1,21 +0,0 @@
import django_tables2 as tables
from django_tables2.utils import A
from core.tables import CoreTable
from .models import Backup
class BackupsTable(CoreTable):
id = tables.Column(visible=False)
name = tables.Column('Backup', linkify=True)
computer = tables.Column('Computer', linkify=True)
target_device = tables.ManyToManyColumn(linkify_item=True)
delete = tables.LinkColumn('backup_delete_from-table',
text='delete',
args=[A('pk')], attrs={
'a': {'class': 'delete material-icons', }
}, orderable=False)
class Meta(CoreTable.Meta):
model = Backup

View File

@ -1,10 +0,0 @@
import pytest
from mixer.backend.django import mixer
pytestmark = pytest.mark.django_db
def test_backup_reverse_url():
backup = mixer.blend('backups.Backup')
assert (backup.get_absolute_url()
== "/backup/" + str(backup.id) + "/")

View File

@ -1,92 +0,0 @@
import pytest
from mixer.backend.django import mixer
from django.test import Client
from core.tests import helper
from core.models import Weekday
from customers.models import Customer
pytestmark = pytest.mark.django_db
def test_backup_detail_view_not_logged_in():
response = Client().get('/backup/1/')
assert response.status_code == 302 and 'login' in response.url
def test_backup_detail_view(create_admin_user):
create_admin_user()
mixer.blend('computers.Computer', customer=mixer.SELECT)
backup = mixer.blend('backups.Backup', computer=mixer.SELECT)
client = Client()
client.login(username="pharma-admin", password="password")
response = client.get('/backup/' + str(backup.id) + '/')
assert (response.status_code == 200
and helper.in_content(response, backup))
def test_backup_detail_view_not_found(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
response = client.get('/backup/100/')
assert response.status_code == 404
def test_customer_computer_table_no_permission(create_admin_user):
create_admin_user()
customer = Customer.objects.create(name='Water Corp.')
client = Client()
client.login(username="pharma-admin", password="password")
mixer.blend('computers.Computer', customer=customer)
backup = mixer.blend('backups.Backup', computer=mixer.SELECT)
response = client.get('/backup/' + str(backup.id) + '/')
assert response.status_code == 403
def test_backup_detail_view_with_target_device(create_admin_user):
create_admin_user()
source_computer = mixer.blend('computers.Computer', customer=mixer.SELECT)
target_computer = mixer.blend('computers.Computer', customer=mixer.SELECT)
backup = mixer.blend('backups.Backup', computer=source_computer,
software=mixer.SELECT, method=mixer.SELECT)
mixer.blend('backups.TargetDevice', device=target_computer,
backup=mixer.SELECT)
client = Client()
client.login(username="pharma-admin", password="password")
response = client.get('/backup/' + str(backup.id) + '/')
assert (response.status_code == 200
and helper.in_content(response, backup)
and helper.in_content(response, target_computer))
def test_backup_detail_view_with_notification(create_admin_user):
create_admin_user()
mixer.blend('computers.Computer', customer=mixer.SELECT)
backup = mixer.blend('backups.Backup', computer=mixer.SELECT)
notification = mixer.blend('backups.Notification')
mixer.blend('backups.NotificationFromBackup',
backup=backup,
notification=notification)
client = Client()
client.login(username="pharma-admin", password="password")
response = client.get('/backup/' + str(backup.id) + '/')
assert (response.status_code == 200
and helper.in_content(response, notification))
def test_backup_detail_view_with_day_relation(create_admin_user):
create_admin_user()
mixer.blend('computers.Computer', customer=mixer.SELECT)
monday = Weekday.objects.filter(name="Monday")
wednesday = Weekday.objects.filter(name="Wednesday")
backup = mixer.blend('backups.Backup',
computer=mixer.SELECT)
backup.exec_days.add(monday[0])
backup.exec_days.add(wednesday[0])
client = Client()
client.login(username="pharma-admin", password="password")
response = client.get('/backup/' + str(backup.id) + '/')
assert (response.status_code == 200
and helper.in_content(response, monday[0])
and helper.in_content(response, wednesday[0]))

View File

@ -1,37 +0,0 @@
from django.test import Client
from mixer.backend.django import mixer
import pytest
pytestmark = pytest.mark.django_db
def test_backup_with_computer_create_view(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
computer = mixer.blend('computers.Computer', customer=mixer.SELECT)
target_device = mixer.blend('computers.Computer', customer=mixer.SELECT)
data = {
'name': "foo",
'computer': computer.id,
'amount': 1,
'exec_time': '12:00',
'method': 1,
'exec_days': 3,
'target_device': target_device.id
}
url = '/create/backup-for-computer/{}/'.format(computer.id)
response = client.post(url, data)
assert response.status_code == 302
def test_backup_with_computer_delete_view(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
computer = mixer.blend('computers.Computer', customer=mixer.SELECT)
backup = mixer.blend('backups.Backup', computer=computer)
url = '/delete/backup/{}/'.format(backup.id)
response = client.post(url)
assert response.status_code == 302

View File

@ -1,61 +0,0 @@
import pytest
from mixer.backend.django import mixer
from django.test import Client
from core.tests import helper
from customers.models import Customer
pytestmark = pytest.mark.django_db
def test_customer_backup_table_not_logged_in():
response = Client().get('/customer/1/backups/')
assert response.status_code == 302 and 'login' in response.url
def test_customer_backup_table(create_admin_user):
fixture = create_admin_user()
customer = fixture['customer']
client = Client()
client.login(username="pharma-admin", password="password")
computer = mixer.blend('computers.Computer', customer=customer)
backup = mixer.blend('backups.Backup', computer=computer)
response = client.get('/customer/' + str(customer.id) + '/backups/')
assert (response.status_code == 200
and helper.in_content(response, backup.name))
def test_customer_backup_table_no_backup(create_admin_user):
fixture = create_admin_user()
customer = fixture['customer']
client = Client()
client.login(username="pharma-admin", password="password")
response = client.get('/customer/' + str(customer.id) + '/backups/')
assert response.status_code == 200
def test_customer_backup_table_no_permission(create_admin_user):
create_admin_user()
customer = Customer.objects.create(name='Water Corp.')
client = Client()
client.login(username="pharma-admin", password="password")
computer = mixer.blend('computers.Computer', customer=customer)
mixer.blend('backups.Backup', computer=computer)
response = client.get('/customer/' + str(customer.id) + '/backups/')
assert response.status_code == 403
def test_customer_backup_table_with_multiple_backups(create_admin_user):
fixture = create_admin_user()
customer = fixture['customer']
client = Client()
client.login(username="pharma-admin", password="password")
computer = mixer.blend('computers.Computer', customer=customer)
backup1 = mixer.blend('backups.Backup', computer=computer)
backup2 = mixer.blend('backups.Backup', computer=computer)
response = client.get('/customer/' + str(customer.id) + '/backups/')
assert (response.status_code == 200
and helper.in_content(response, backup1)
and helper.in_content(response, backup2))

View File

@ -1,16 +0,0 @@
from django.urls import path
from . import views
urlpatterns = [
path('customer/<int:pk>/backups/', views.backups_table_view,
name='backups'),
path('backup/<int:pk>/', views.backup_detail_view, name='backup'),
path('create/backup-for-computer/<int:pk>/',
views.BackupCreateView.as_view(), name='backup_create'),
path('delete/backup/<int:pk>/',
views.BackupDeleteView.as_view(), name='backup_delete'),
path('delete/backup/from-table/<int:pk>/',
views.BackupDeleteFromTableView.as_view(),
name='backup_delete_from-table'),
]

View File

@ -1,74 +0,0 @@
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import get_object_or_404
from django.shortcuts import render
from django.urls import reverse
from django.views.generic import CreateView
from django.views.generic import DeleteView
from django_tables2 import RequestConfig
from computers.models import Computer
from customers.decorators import customer_view_permission
from .decorators import backup_view_permission
from .models import Backup
from .models import NotificationFromBackup
from .models import TargetDevice
from .tables import BackupsTable
@login_required
@customer_view_permission
def backups_table_view(request, pk):
computers = Computer.objects.filter(customer=pk)
table = BackupsTable(Backup.objects.filter(computer__in=computers))
RequestConfig(request).configure(table)
return render(request, 'backups/backup_list.html', {'backups': table})
@login_required
@backup_view_permission
def backup_detail_view(request, pk):
backup = get_object_or_404(Backup, pk=pk)
target_device_list = TargetDevice.objects.filter(backup=backup)
notifications = NotificationFromBackup.objects.filter(backup=backup)
return render(request, 'backups/backup_details.html',
{'backup': backup,
'target_device_list': target_device_list,
'notifications': notifications})
class BackupCreateView(LoginRequiredMixin, CreateView):
model = Backup
template_name = 'backups/backup_create.html'
fields = '__all__'
def get_success_url(self):
return reverse('computer', args=(self.computer.pk,))
def get_initial(self):
"""
Set the device and customer dropdown to the device from the previous
view and the customer related to the device.
"""
self.computer = get_object_or_404(Computer, id=self.kwargs.get('pk'))
return {
'computer': self.computer,
}
class BackupDeleteView(LoginRequiredMixin, DeleteView):
model = Backup
template_name = 'backups/backup_confirm_delete.html'
def get_success_url(self):
return reverse('computer', args=(self.object.computer.pk,))
class BackupDeleteFromTableView(LoginRequiredMixin, DeleteView):
model = Backup
template_name = 'backups/backup_confirm_delete.html'
def get_success_url(self):
return reverse('backups', args=(self.object.customer.pk,))