from django.test import TestCase, Client
from system.models import Employee, Department, Position, Attendance, Salary
from django.contrib.auth.models import User, Group
from django.urls import reverse
from datetime import date
class EmployeeTestCase(TestCase): # 员工信息管理模块测试
def setUp(self):
# 创建一个部门对象和一个职位对象
self.department = Department.objects.create(name='IT', desc='Information Technology')
self.position = Position.objects.create(name='Developer', desc='Software Developer')
# 创建一个员工对象
self.employee = Employee.objects.create(name='John Doe', gender='male', age=28, phone='1234567890',
email='johndoe@example.com', address='123 Main Street',
hire_date='2022-03-23', education='Bachelor', experience='5 years',
skills='Python, Java, HTML', department_id=self.department.id,
position_id=self.position.id)
def test_employee_created(self):
# 测试员工对象是否创建成功
emp = Employee.objects.get(name='John Doe')
self.assertEqual(emp.gender, 'male')
def test_employee_updated(self):
# 测试员工对象是否可以被成功修改
emp = Employee.objects.get(name='John Doe')
emp.age = 29
emp.save()
updated_emp = Employee.objects.get(name='John Doe')
self.assertEqual(updated_emp.age, 29)
def test_employee_deleted(self):
# 测试员工对象是否可以被成功删除
emp = Employee.objects.get(name='John Doe')
emp.delete()
with self.assertRaises(Employee.DoesNotExist):
Employee.objects.get(name='John Doe')
def test_employee_query(self):
# 测试是否可以通过查询语句获取员工对象
emp = Employee.objects.filter(name='John Doe')
self.assertEqual(emp.count(), 1)
def tearDown(self):
# 清理测试数据
self.employee.delete()
self.department.delete()
self.position.delete()
class DepartmentTestCase(TestCase): # 部门信息管理模块测试
def setUp(self):
# 创建一个部门对象
self.department = Department.objects.create(name='IT', desc='Information Technology')
def test_department_created(self):
# 测试部门对象是否创建成功
dep = Department.objects.get(name='IT')
self.assertEqual(dep.desc, 'Information Technology')
def test_department_updated(self):
# 测试部门对象是否可以被成功修改
dep = Department.objects.get(name='IT')
dep.desc = 'IT Department'
dep.save()
updated_dep = Department.objects.get(name='IT')
self.assertEqual(updated_dep.desc, 'IT Department')
def test_department_deleted(self):
# 测试部门对象是否可以被成功删除
dep = Department.objects.get(name='IT')
dep.delete()
with self.assertRaises(Department.DoesNotExist):
Department.objects.get(name='IT')
def test_department_query(self):
# 测试是否可以通过查询语句获取部门对象
dep = Department.objects.filter(name='IT')
self.assertEqual(dep.count(), 1)
def tearDown(self):
# 清理测试数据
self.department.delete()
class PositionTestCase(TestCase): # 职位信息管理模块测试
def setUp(self):
# 创建一个职位对象
self.position = Position.objects.create(name='Developer', desc='Software Developer')
def test_position_created(self):
# 测试职位对象是否创建成功
pos = Position.objects.get(name='Developer')
self.assertEqual(pos.desc, 'Software Developer')
def test_position_updated(self):
# 测试职位对象是否可以被成功修改
pos = Position.objects.get(name='Developer')
pos.desc = 'Web Developer'
pos.save()
updated_pos = Position.objects.get(name='Developer')
self.assertEqual(updated_pos.desc, 'Web Developer')
def test_position_deleted(self):
# 测试职位对象是否可以被成功删除
pos = Position.objects.get(name='Developer')
pos.delete()
with self.assertRaises(Position.DoesNotExist):
Position.objects.get(name='Developer')
def test_position_query(self):
# 测试是否可以通过查询语句获取职位对象
pos = Position.objects.filter(name='Developer')
self.assertEqual(pos.count(), 1)
def tearDown(self):
# 清理测试数据
self.position.delete()
class AdminUserTestCase(TestCase): # 用户信息管理模块测试
def setUp(self):
# 创建一个admin用户对象
self.admin_user = User.objects.create_user(username='admin', password='password')
def test_admin_user_created(self):
# 测试admin用户对象是否创建成功
admin_user = User.objects.get(username='admin')
self.assertTrue(admin_user.check_password('password'))
def test_admin_user_updated(self):
# 测试admin用户对象是否可以被成功修改
admin_user = User.objects.get(username='admin')
admin_user.set_password('new_password')
admin_user.save()
updated_admin_user = User.objects.get(username='admin')
self.assertTrue(updated_admin_user.check_password('new_password'))
def test_admin_user_deleted(self):
# 测试admin用户对象是否可以被成功删除
admin_user = User.objects.get(username='admin')
admin_user.delete()
with self.assertRaises(User.DoesNotExist):
User.objects.get(username='admin')
def test_admin_user_query(self):
# 测试是否可以通过查询语句获取admin用户对象
admin_user = User.objects.filter(username='admin')
self.assertEqual(admin_user.count(), 1)
def tearDown(self):
# 清理测试数据
self.admin_user.delete()
class AdminGroupTestCase(TestCase): # 角色信息管理模块测试
def setUp(self):
# 创建一个 admin 组对象
self.admin_group = Group.objects.create(name='admin')
def test_admin_group_created(self):
# 测试 admin 组对象是否创建成功
group = Group.objects.get(name='admin')
self.assertEqual(group.name, 'admin')
def test_admin_group_updated(self):
# 测试 admin 组对象是否可以被成功修改
group = Group.objects.get(name='admin')
group.name = 'superadmin'
group.save()
updated_group = Group.objects.get(name='superadmin')
self.assertEqual(updated_group.name, 'superadmin')
def test_admin_group_deleted(self):
# 测试 admin 组对象是否可以被成功删除
group = Group.objects.get(name='admin')
group.delete()
with self.assertRaises(Group.DoesNotExist):
Group.objects.get(name='admin')
def test_admin_group_query(self):
# 测试是否可以通过查询语句获取 admin 组对象
group = Group.objects.filter(name='admin')
self.assertEqual(group.count(), 1)
def tearDown(self):
# 清理测试数据
self.admin_group.delete()
class AdminAuthenticationTestCase(TestCase): # 用户登录登出模块测试
def setUp(self):
self.client = Client()
self.username = 'admin'
self.password = 'adminpass'
self.client.login(username=self.username, password=self.password)
def test_admin_login(self):
# 判断是否登录成功
response = self.cl
没有合适的资源?快使用搜索试试~ 我知道了~
基于Python+Django的人员管理系统源码;
使用人群:学习Django框架的人员;是我做毕业设计开发的一个人员管理系统;
需要自行安装python、Django和mysql;可以网上找步骤,我后期也会出几篇安装配置开发教程,可以关注我;
1、安装python、Django和mysql
2、创建Django项目和app;项目名称为:Personnel;app名称为:system;
3、mysql中创建对应的数据库Personnel,settings.py文件中的数据库配置对应修改(主要是数据库的用户名密码等)
4、执行以下两个命令
python manage.py makemigrations
python manage.py migrate
5、创建后台管理用户
python manage.py createsuperuser
6、启动程序
python manage.py runserver
打开程序页面
收起资源包目录





































































共 55 条
- 1
资源推荐
资源预览
资源评论


101 浏览量

165 浏览量

114 浏览量


151 浏览量

153 浏览量


2023-06-09 上传

149 浏览量

119 浏览量

176 浏览量


171 浏览量
107 浏览量

165 浏览量

140 浏览量
161 浏览量
2023-08-02 上传

196 浏览量
2023-09-17 上传

资源评论

- 石头儿啊2024-01-04啥也没有就提交上去了? #毫无价值
- mpq2025-03-09为什么运行时显示没有import_export模块

青春不朽512
- 粉丝: 345
- 资源: 3
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- (源码)基于微控制器的吉他自动调音器.zip
- (源码)基于STM32微控制器的PCM数据分析项目.zip
- (源码)基于Go语言的抽奖小服务系统.zip
- (源码)基于ESP32和Ubidots的温湿度及CO2监测系统.zip
- (源码)基于Pythonwechaty框架的智能微信机器人.zip
- (源码)基于Arduino和FT810的彩虹合成器.zip
- (源码)基于STM32和Raspberry Pi的自动驾驶车辆系统.zip
- (源码)基于Python的图库管理系统.zip
- (源码)基于Arduino的电子发明家原型设计项目(Summer 2020版).zip
- (源码)基于Unity和FMOD的绘本游戏《会说话的点点》.zip
- (源码)基于Makefile的跨平台编译管理系统.zip
- (源码)基于STM32的USB风扇控制系统.zip
- (源码)基于Python的机器学习算法可视化实践系统.zip
- (源码)基于C语言和RTThread的ESPush W60X固件.zip
- (源码)基于Arduino和NodeMCU的智能街道照明系统.zip
- (源码)基于MQTT协议的智能隔尿垫系统.zip
安全验证
文档复制为VIP权益,开通VIP直接复制
