mirror of
https://github.com/Nebucatnetzer/network_inventory.git
synced 2024-06-28 20:20:58 +02:00
remove unused code from backups
This commit is contained in:
parent
c6bb767138
commit
55e0a2610d
|
@ -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
|
|
@ -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
|
|
@ -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) + "/")
|
|
@ -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]))
|
|
@ -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
|
|
@ -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))
|
|
@ -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'),
|
||||
]
|
|
@ -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,))
|
Loading…
Reference in New Issue
Block a user