def test_average_speed_per_hour_returns_metric_result(self): # Arrange django_settings.set('String', 'unit_of_measurement', settings.METRIC) start = timezone.now() finish = start + datetime.timedelta(seconds=15) # Act avg_sph = compute.average_speed_per_hour(start, finish, 50) # Assert self.assertEqual(12, avg_sph)
def save(self, commit=True): if commit: django_settings_admin.clear_cache( modeladmin=django_settings.admin.SettingAdmin, request=None, queryset=django_settings.models.Setting.objects.all() ) for key, value in self.cleaned_data.iteritems(): field_type = self.fields[key].__class__.__name__ django_settings.set(self.SETTING_TYPE[field_type], key.upper(), value)
def save(self): for f in self.fields: value = self.cleaned_data.get(f) if value: t = 'String' if (len(value) > 254): t = 'LongString' django_settings.set(t, f, value) else: django_settings.set('String', f, '', validate=False)
def test_should_cache_only_for_configurable_amount_of_time(self): self.assert_equal(django_settings.conf.DJANGO_SETTINGS_TIMEOUT, 2) original_method = django_settings.data.cache.set def set_method_assure_timeout_passing(key, origin_value, timeout=None): self.assert_equal(timeout, django_settings.conf.DJANGO_SETTINGS_TIMEOUT) return original_method(key, origin_value, timeout=timeout) django_settings.data.cache.set = set_method_assure_timeout_passing django_settings.set('Email', 'test_email', '*****@*****.**') django_settings.data.cache.set = original_method
def test_setting_value_few_times(self): typename = "MyString" django_settings.set(typename, 'test_string', 'data1') n.assert_equal(django_settings.exists('test_string'), True) n.assert_equal(django_settings.get("test_string"), "data1") django_settings.set(typename, 'test_string', 'data2') n.assert_equal(django_settings.data.get("test_string"), "data2") django_settings.set(typename, 'test_string', 'data3') n.assert_equal(django_settings.data.get("test_string"), "data3") django_settings.set(typename, 'test_string', 'data4') n.assert_equal(django_settings.data.get("test_string"), "data4")
def test_setting_value_few_times(self): typename = "MyString" django_settings.set(typename, 'test_string', 'data1') self.assert_equal(django_settings.exists('test_string'), True) self.assert_equal(django_settings.get("test_string"), "data1") django_settings.set(typename, 'test_string', 'data2') self.assert_equal(django_settings.data.get("test_string"), "data2") django_settings.set(typename, 'test_string', 'data3') self.assert_equal(django_settings.data.get("test_string"), "data3") django_settings.set(typename, 'test_string', 'data4') self.assert_equal(django_settings.data.get("test_string"), "data4")
def set_all_data(): for type_name, name, value in data: django_settings.set(type_name, name, value)
def test_should_set_properly(self): n.assert_true(hasattr(django_settings.models, 'MyString')) assert not django_settings.exists('admin_email') django_settings.set('MyString', 'admin_email', '*****@*****.**') assert django_settings.get('admin_email') == '*****@*****.**'
def handle(self, *args, **options): '''For each Team object check their sponsorship page and update their record in the database ''' # connect to the API if not settings.TWITTER_CONSUMER_KEY: raise Exception("There are no Twitter user credentials") api = TwitterAPI( settings.TWITTER_CONSUMER_KEY, settings.TWITTER_CONSUMER_SECRET, settings.TWITTER_ACCESS_TOKEN_KEY, settings.TWITTER_ACCESS_TOKEN_SECRET ) streams = TwitterStream.objects.all().filter( Q(type=TwitterStream.TWITTER) | Q(type=TwitterStream.TWITTER_LIST) ) for stream in streams: logging.debug("Now working on %s" % stream) # look up the settings in the database to see where # were we the last time we asked for tweets from Twitter since_id = django_settings.get('TWITTER_SINCE_ID_%s' % stream.stream_id, default=1) new_since_id = since_id # make APiI request and check HTTP response r = api.request('lists/statuses', { 'list_id': stream.stream_id, 'include_rts': stream.include_rts, 'since_id': since_id, 'count': 25 } ) if r.status_code != 200: logging.exception("API Call Failed") raise Exception("API Call Failed") # prcoess tweets for tweet in r.get_iterator(): try: try: tweet['retweeted_status'] # this key is only set on retweets # this is a retweet by our accounts # we care about the original tweet maker not ourselves tweet = tweet['retweeted_status'] except KeyError: pass # extract out the media from the entities try: media_url = tweet['entities']['media'][0]['media_url'] except: media_url = None # strip the timezone off the timestamp time_tz = dateutil.parser.parse(tweet['created_at']) time = datetime.datetime(time_tz.year, time_tz.month, time_tz.day, time_tz.hour, time_tz.minute, time_tz.second) if not Tweet.objects.all().filter(tweet_id=tweet['id']).exists(): new_tweet = Tweet.objects.create( tweet_id=tweet['id'], media_url=media_url, message=_html_for_tweet(tweet), time=time, in_reply_to_user_name=tweet['in_reply_to_screen_name'], retweeted=True, user_id=tweet['user']['id'], user_name=tweet['user']['screen_name'], user_photo=tweet['user']['profile_image_url'], team=None ) # update the since id so we don't get the same # tweets mutliple times from twitter if new_tweet.tweet_id < new_since_id: new_since_id = new_tweet.tweet_id logging.debug("Created tweet %i" % new_tweet.tweet_id) else: logging.debug("Tweet %s has already been added to the database" % tweet['id']) new_tweet = None except Exception as e: logging.exception("Failed to process tweet %d" % tweet['id']) # update settings datastore with highest tweet id django_settings.set('Integer', 'TWITTER_SINCE_ID_%s' % stream.stream_id, new_since_id)
def test_should_set_properly(self): self.assert_true(hasattr(django_settings.models, 'MyString')) assert not django_settings.exists('admin_email') django_settings.set('MyString', 'admin_email', '*****@*****.**') assert django_settings.get('admin_email') == '*****@*****.**'