def test_update_first_run(self, mock_get_content): mock_get_content.return_value = self._first_result() utils.update() meetups = Meetup.objects.all() self.assertEqual(len(meetups), 1) # Check all values are as expected meetup = meetups[0] expected_datetime = datetime( year=2015, month=6, day=10, hour=17, minute=30, tzinfo=UTC) self.assertEqual(meetup.time, expected_datetime) expected_datetime = datetime( year=2015, month=5, day=12, hour=21, minute=53, second=10, tzinfo=UTC) self.assertEqual(meetup.updated, expected_datetime) expected_datetime = datetime( year=2014, month=1, day=28, hour=20, minute=47, second=2, tzinfo=UTC) self.assertEqual(meetup.created, expected_datetime) self.assertEqual(meetup.rsvps, 24) self.assertEqual(meetup.maybe_rsvps, 7) self.assertEqual(meetup.waitlist_count, 11) self.assertEqual(meetup.name, 'Python Ireland meetup') self.assertEqual(meetup.description, description) self.assertEqual(meetup.status, 'upcoming') self.assertEqual(meetup.visibility, 'public') self.assertEqual(meetup.event_url, 'http://www.meetup.com/pythonireland/events/221078098/') # We should have ticked the MeetupUpdate r = settings.REDIS meetup_update = iso8601.parse_date(r.get(settings.MEETUPS_LAST_CHECKED).decode('utf-8')) minute_ago = datetime.now(tz=UTC) - timedelta(minutes=1) self.assertGreater(meetup_update, minute_ago)
def test_update_second_run(self, mock_get_content): mock_get_content.return_value = self._first_result() utils.update() meetups = Meetup.objects.all() expected_datetime = datetime(year=2015, month=5, day=12, hour=21, minute=53, second=10, tzinfo=UTC) self.assertEqual(meetups[0].updated, expected_datetime) mock_get_content.return_value = self._second_result() self._invalidate_meetup_update() # Allow a another update so soon utils.update() meetups = Meetup.objects.all() self.assertEqual(len(meetups), 1) expected_datetime = datetime(year=2015, month=5, day=12, hour=21, minute=53, second=20, tzinfo=UTC) self.assertEqual(meetups[0].updated, expected_datetime) self.assertEqual(meetups[0].name, "New name") self.assertEqual(meetups[0].rsvps, 125)
def test_update_first_run(self, mock_get_content): mock_get_content.return_value = self._first_result() utils.update() meetups = Meetup.objects.all() self.assertEqual(len(meetups), 1) # Check all values are as expected meetup = meetups[0] expected_datetime = datetime( year=2015, month=6, day=10, hour=17, minute=30, tzinfo=UTC) self.assertEqual(meetup.time, expected_datetime) expected_datetime = datetime(year=2015, month=5, day=12, hour=21, minute=53, second=10, tzinfo=UTC) self.assertEqual(meetup.updated, expected_datetime) expected_datetime = datetime(year=2014, month=1, day=28, hour=20, minute=47, second=2, tzinfo=UTC) self.assertEqual(meetup.created, expected_datetime) self.assertEqual(meetup.rsvps, 24) self.assertEqual(meetup.maybe_rsvps, 7) self.assertEqual(meetup.waitlist_count, 11) self.assertEqual(meetup.name, 'Python Ireland meetup') self.assertEqual(meetup.description, description) self.assertEqual(meetup.status, 'upcoming') self.assertEqual(meetup.visibility, 'public') self.assertEqual(meetup.event_url, ('http://www.meetup.com/' 'pythonireland/events/221078098/'))
def test_update_second_run_no_update(self, mock_get_content): mock_get_content.return_value = self._first_result() utils.update() mock_get_content.return_value = self._first_result() utils.update() meetups = Meetup.objects.all() self.assertEqual(len(meetups), 1)
def meetups(context): update() self = context.get('self') if hasattr(self, 'show_meetups') and self.show_meetups: meetups = Meetup.future_events() else: meetups = [] return { 'meetups': meetups, 'request': context['request'], }
def test_update_second_run_too_soon(self, mock_get_content): mock_get_content.return_value = self._first_result() utils.update() mock_get_content.return_value = self._second_result() utils.update() # Won't update meetups = Meetup.objects.all() self.assertEqual(len(meetups), 1) expected_datetime = datetime( year=2015, month=5, day=12, hour=21, minute=53, second=10, tzinfo=UTC) self.assertEqual(meetups[0].updated, expected_datetime) self.assertEqual(meetups[0].name, "Python Ireland meetup")
def test_update_second_run_too_soon(self, mock_get_content): mock_get_content.return_value = self._first_result() utils.update() self.assertTrue(mock_get_content.called) utils.update() # doesn't call meetup API self.assertEqual(mock_get_content.call_count, 1) meetups = Meetup.objects.all() self.assertEqual(len(meetups), 1) expected_datetime = datetime( year=2015, month=5, day=12, hour=21, minute=53, second=10, tzinfo=UTC) self.assertEqual(meetups[0].updated, expected_datetime) self.assertEqual(meetups[0].name, "Python Ireland meetup")
def test_update_second_run(self, mock_get_content): mock_get_content.return_value = self._first_result() utils.update() meetups = Meetup.objects.all() expected_datetime = datetime( year=2015, month=5, day=12, hour=21, minute=53, second=10, tzinfo=UTC) self.assertEqual(meetups[0].updated, expected_datetime) mock_get_content.return_value = self._second_result() MeetupUpdate._invalidate_meetup_update() # Allow a another update so soon utils.update() meetups = Meetup.objects.all() self.assertEqual(len(meetups), 1) expected_datetime = datetime( year=2015, month=5, day=12, hour=21, minute=53, second=20, tzinfo=UTC) self.assertEqual(meetups[0].updated, expected_datetime) self.assertEqual(meetups[0].name, "New name")
def test_update_second_run_add_one(self, mock_get_content): mock_get_content.return_value = self._first_result() utils.update() mock_get_content.return_value = self._second_result() utils.update() mock_get_content.return_value = self._third_result() utils.update() meetup_one = Meetup.objects.get(id='qwfbshytjbnb') meetup_two = Meetup.objects.get(id='qwfbshytjbnc') self.assertEqual(meetup_one.name, 'New name') self.assertEqual(meetup_two.name, 'New entry')
def meetups(self): update() meetups = Meetup.future_events()[:3] return meetups
def handle(self, *args, **options): update()