diff --git a/apps/reader/models.py b/apps/reader/models.py index 8ee98804d..a8dc2d74e 100644 --- a/apps/reader/models.py +++ b/apps/reader/models.py @@ -31,12 +31,14 @@ class UserSubscription(models.Model): super(UserSubscription, self).save(force_insert, force_update, *args, **kwargs) def mark_feed_read(self): - self.last_read_date = datetime.datetime.now() - self.mark_read_date = datetime.datetime.now() + latest_story = self.feed.stories.order_by('-story_date')[0] + now = datetime.datetime.now() + self.last_read_date = max(now, latest_story.story_date) + self.mark_read_date = max(now, latest_story.story_date) self.unread_count_negative = 0 self.unread_count_positive = 0 self.unread_count_neutral = 0 - self.unread_count_updated = datetime.datetime.now() + self.unread_count_updated = max(now, latest_story.story_date) self.needs_unread_relcalc = False self.save() diff --git a/apps/rss_feeds/fixtures/rss_feeds.json b/apps/rss_feeds/fixtures/rss_feeds.json index 3b0f1ae54..246fe6b96 100644 --- a/apps/rss_feeds/fixtures/rss_feeds.json +++ b/apps/rss_feeds/fixtures/rss_feeds.json @@ -1,18 +1,4 @@ [ - - - - { - "pk": 1, - "model": "reader.usersubscriptionfolders", - "fields": { - "feed": 1, - "user_sub": 1, - "folder": "Blogs", - "user": 1 - } - }, - { "pk": 1, "model": "reader.usersubscription", @@ -20,18 +6,18 @@ "feed": 1, "unread_count_updated": "2009-08-01 00:23:42", "mark_read_date": "2009-07-28 23:17:27", - "unread_count": 0, + "unread_count_neutral": 0, + "unread_count_positive": 0, + "unread_count_negative": 0, "user": 1, "last_read_date": "2009-07-28 23:17:27" } }, { - "pk": 2, + "pk": 1, "model": "reader.usersubscriptionfolders", "fields": { - "feed": 2, - "user_sub": 2, - "folder": "Blogs", + "folders": "[{\"Tech\": [4, 5]}, 1, 2, 3]", "user": 1 } }, @@ -43,22 +29,13 @@ "feed": 2, "unread_count_updated": "2009-08-01 00:23:42", "mark_read_date": "2009-07-28 23:17:27", - "unread_count": 0, + "unread_count_neutral": 0, + "unread_count_positive": 0, + "unread_count_negative": 0, "user": 1, "last_read_date": "2009-07-28 23:17:27" } }, - { - "pk": 3, - "model": "reader.usersubscriptionfolders", - "fields": { - "feed": 3, - "user_sub": 3, - "folder": "Blogs", - "user": 1 - } - }, - { "pk": 3, "model": "reader.usersubscription", @@ -66,22 +43,13 @@ "feed": 3, "unread_count_updated": "2009-08-01 00:23:42", "mark_read_date": "2009-07-28 23:17:27", - "unread_count": 0, + "unread_count_neutral": 0, + "unread_count_positive": 0, + "unread_count_negative": 0, "user": 1, "last_read_date": "2009-07-28 23:17:27" } }, - { - "pk": 4, - "model": "reader.usersubscriptionfolders", - "fields": { - "feed": 4, - "user_sub": 4, - "folder": "Blogs", - "user": 1 - } - }, - { "pk": 4, "model": "reader.usersubscription", @@ -89,25 +57,13 @@ "feed": 4, "unread_count_updated": "2009-08-01 00:23:42", "mark_read_date": "2009-07-28 23:17:27", - "unread_count": 0, + "unread_count_neutral": 0, + "unread_count_positive": 0, + "unread_count_negative": 0, "user": 1, "last_read_date": "2009-07-28 23:17:27" } }, - - - - { - "pk": 5, - "model": "reader.usersubscriptionfolders", - "fields": { - "feed": 5, - "user_sub": 5, - "folder": "Blogs", - "user": 1 - } - }, - { "pk": 5, "model": "reader.usersubscription", @@ -115,7 +71,9 @@ "feed": 5, "unread_count_updated": "2009-08-01 00:23:42", "mark_read_date": "2009-07-28 23:17:27", - "unread_count": 0, + "unread_count_neutral": 0, + "unread_count_positive": 0, + "unread_count_negative": 0, "user": 1, "last_read_date": "2009-07-28 23:17:27" } diff --git a/apps/rss_feeds/models.py b/apps/rss_feeds/models.py index a17994d71..135a699e9 100644 --- a/apps/rss_feeds/models.py +++ b/apps/rss_feeds/models.py @@ -317,7 +317,7 @@ class StoryAuthor(models.Model): class Story(models.Model): '''A feed item''' - story_feed = models.ForeignKey(Feed) + story_feed = models.ForeignKey(Feed, related_name="stories") story_date = models.DateTimeField() story_title = models.CharField(max_length=255) story_content = StoryField(null=True, blank=True) diff --git a/apps/rss_feeds/tests.py b/apps/rss_feeds/tests.py index 3bbda7678..ae080b3cb 100644 --- a/apps/rss_feeds/tests.py +++ b/apps/rss_feeds/tests.py @@ -14,10 +14,10 @@ class FeedTest(TestCase): self.client.login(username='conesus', password='test') management.call_command('loaddata', 'gawker1.json', verbosity=0) - response = self.client.get('/reader/refresh_feed', { "feed_id": 1, "force": True }) + management.call_command('refresh_feed', force=1, feed=1, daemonize=False) management.call_command('loaddata', 'gawker2.json', verbosity=0) - response = self.client.get('/reader/refresh_feed', { "feed_id": 1, "force": True }) + management.call_command('refresh_feed', force=1, feed=1, daemonize=False) response = self.client.get('/reader/load_single_feed', { "feed_id": 1 }) diff --git a/utils/test-settings.py b/utils/test-settings.py index c1fcca854..04899a031 100644 --- a/utils/test-settings.py +++ b/utils/test-settings.py @@ -1,7 +1,13 @@ from settings import * - -DATABASE_ENGINE = 'sqlite3' -DATABASE_NAME = ':memory:' +DATABASES = { + 'default': { + 'NAME': ':memory:', + 'ENGINE': 'django.db.backends.sqlite3', + 'USER': 'newsblur', + 'PASSWORD': '', + 'HOST': '127.0.0.1', + } +} TEST_DATABASE_NAME = ":memory:" # from django.db import connection