Skip to content

Commit

Permalink
Merge pull request #31 from asherf/jerry
Browse files Browse the repository at this point in the history
return number of deleted rows
  • Loading branch information
Adam DePue committed Feb 12, 2016
2 parents c11b18e + 8ebf085 commit 469ded2
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 11 deletions.
6 changes: 3 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ python:
- "2.7"
sudo: false
env:
- DJANGO_VERSION_CEILING=1.9 DJANGO_DB_ENGINE=sqlite
- DJANGO_VERSION_CEILING=1.9 DJANGO_DB_ENGINE=postgres DJANGO_DB_NAME=testdb DJANGO_DB_USER=postgres
- DJANGO_VERSION_CEILING=1.9 DJANGO_DB_ENGINE=mysql DJANGO_DB_NAME=testdb DJANGO_DB_USER=travis
- DJANGO_VERSION_CEILING=1.9.1 DJANGO_DB_ENGINE=sqlite
- DJANGO_VERSION_CEILING=1.9.1 DJANGO_DB_ENGINE=postgres DJANGO_DB_NAME=testdb DJANGO_DB_USER=postgres
- DJANGO_VERSION_CEILING=1.9.1 DJANGO_DB_ENGINE=mysql DJANGO_DB_NAME=testdb DJANGO_DB_USER=travis
- DJANGO_VERSION_CEILING=1.10 DJANGO_DB_ENGINE=sqlite
- DJANGO_VERSION_CEILING=1.10 DJANGO_DB_ENGINE=postgres DJANGO_DB_NAME=testdb DJANGO_DB_USER=postgres
- DJANGO_VERSION_CEILING=1.10 DJANGO_DB_ENGINE=mysql DJANGO_DB_NAME=testdb DJANGO_DB_USER=travis
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
Changelog
=========

2.4.0 (2016-02-11)
------------------
- Drop support for Django 1.8
- add number of affected rows for delete methods (hard_delete, soft_delete, delete)

2.1.0 (2014-09-04)
------------------
- Add support for Django 1.7.
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@


install_requires = (
'Django>=1.8,<1.10',
'Django>=1.9,<1.10',
)


Expand Down Expand Up @@ -72,7 +72,7 @@ def run_tests(self):

setup(
name='django-livefield',
version='2.3.2',
version='2.4.0',
description='Convenient soft-deletion support for Django models',
long_description=(
open('README.rst').read() + '\n\n' +
Expand Down
6 changes: 3 additions & 3 deletions src/livefield/querysets.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ class LiveQuerySet(models.query.QuerySet):

def delete(self):
# Override Django's built-in default.
self.soft_delete()
return self.soft_delete()

def soft_delete(self):
self.update(live=False)
return self.update(live=False)

def hard_delete(self):
# Default Django behavior.
super(LiveQuerySet, self).delete()
return super(LiveQuerySet, self).delete()[0]

def live(self):
return self.filter(live=True)
Expand Down
9 changes: 6 additions & 3 deletions tests/test_queryset.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,16 @@ def test_dead_filter(self):
self.assertEqual(Person.all_objects.all().dead().count(), 2)

def test_soft_delete(self):
Person.all_objects.all().soft_delete()
deleted = Person.all_objects.all().soft_delete()
self.assertEqual(deleted, 5)
self.assertEqual(Person.all_objects.all().dead().count(), 5)

def test_hard_delete(self):
Person.all_objects.all().hard_delete()
deleted = Person.all_objects.all().hard_delete()
self.assertEqual(deleted, 5)
self.assertEqual(Person.all_objects.all().count(), 0)

def test_default_delete_is_soft(self):
Person.all_objects.all().delete()
deleted = Person.all_objects.all().delete()
self.assertEqual(deleted, 5)
self.assertEqual(Person.all_objects.all().dead().count(), 5)

0 comments on commit 469ded2

Please sign in to comment.