Ejemplo n.º 1
0
 def test_style_words(self):
     conversation = classes.Conversation(timeline=self.test_timeline,
                                         adapter=ParticipationAdapter)
     for period in conversation.data['periods']:
         for status in period['statuses']:
             self.assertEqual(set(status['style_classes'].split()),
                              {'mock', 'status'})
Ejemplo n.º 2
0
 def test_load_timeline_json_central(self):
     tests_path = os.path.dirname(__file__)
     timeline_file_path = os.path.join(tests_path,
                                       'json/timeline_central.json')
     conversation = classes.Conversation(adapter=ParticipationAdapter)
     conversation.load(timeline_file_path)
     data = conversation.data
     self.assertEqual(len(data['periods']), 5)
     self.assertEqual(data['periods'][0]['subtitle'],
                      'Tuesday, February 23, 2010  8PM')
     self.assertEqual(data['periods'][1]['subtitle'],
                      'Wednesday, February 24, 2010  5AM')
     self.assertEqual(data['periods'][2]['subtitle'],
                      'Wednesday, February 24, 2010  6AM')
     self.assertEqual(data['periods'][3]['subtitle'],
                      'Wednesday, February 24, 2010  7AM')
     self.assertEqual(data['periods'][4]['subtitle'],
                      'Wednesday, February 24, 2010  8AM')
     self.assertEqual(data['title'], 'Tick Tock')
     self.assertEqual(data['nav'], ['1', '2', '3', '4', '5'])
     self.assertTrue(
         isinstance(data['participation'], classes.Participation))
     participation = data['participation']
     self.assertEqual(participation.participants.keys(), {'test_author'},
                      msg=participation.participants)
     participant = participation.participants['test_author']
     self.assertEqual(participant.exchange_count, 5)
Ejemplo n.º 3
0
 def test_add_origin_tweet(self):
     tests_path = os.path.dirname(__file__)
     timeline_file_path = os.path.join(tests_path, 'json/timeline.json')
     conversation = classes.Conversation(adapter=ParticipationAdapter)
     conversation.load(timeline_file_path)
     data = adapters.transform_with_participation_and_styles(
         conversation, [], '\d', 0)
     self.assertEqual(data['nav'], ['1', '2', '3', '4', '5'])
Ejemplo n.º 4
0
 def test_timezone_parsing(self):
     timeline_json = {
         'start': "2001-02-03T20:44:32.316656+00:00",
         'cutoff': "2001-02-03T15:44:32.316656+00:00",
     }
     conversation = classes.Conversation(timeline_json)
     start, cutoff = conversation._get_timeline_interval()
     self.assertTrue(start.tzinfo)
     self.assertTrue(cutoff.tzinfo)
Ejemplo n.º 5
0
 def test_transform(self):
     tests_path = os.path.dirname(__file__)
     timeline_file_path = os.path.join(tests_path, 'json/timeline.json')
     conversation = classes.Conversation(adapter=TopicHeaderAdapter)
     conversation.load(timeline_file_path)
     data = adapters.transform_with_topic_headers(conversation,
                                                  '\d',
                                                  return_goup=0)
     self.assertEqual(data['topic_headers'], ['1', '2', '3', '4', '5'])
Ejemplo n.º 6
0
 def test_hour_parsing(self):
     timeline_json = {
         'start': "2001-02-03T20:44:32.316656+00:00",
         'cutoff': "2001-02-03T15:44:32.316656+00:00",
     }
     conversation = classes.Conversation(timeline_json)
     start, cutoff = conversation._get_timeline_interval()
     self.assertEqual(start.hour, 20)
     self.assertEqual(cutoff.hour, 15)
Ejemplo n.º 7
0
 def test_period_sort_latest(self):
     conversation = classes.Conversation(timeline=self.test_timeline,
                                         adapter=TextAdapter)
     periods = conversation.data['periods']
     last = self.latest_datetime
     clean_latest = last.replace(minute=0, second=0)
     unix_epoch = datetime(1970, 1, 1, tzinfo=last.tzinfo)
     seconds = (clean_latest - unix_epoch).total_seconds()
     key = int(seconds)
     self.assertEqual(key, periods[6]['id'], msg=periods)
Ejemplo n.º 8
0
 def test_period_format(self):
     conversation = classes.Conversation(timeline=self.test_timeline,
                                         adapter=ParticipationAdapter)
     periods = conversation.data['periods']
     for period in periods:
         self.assertTrue('subtitle' in period)
         self.assertTrue('statuses' in period)
         self.assertTrue('empty' in period)
         self.assertTrue('id' in period)
         self.assertTrue('empty_message' in period)
Ejemplo n.º 9
0
 def test_central_time_parsing(self):
     timeline_json = {
         'start': "2001-02-03T20:44:32.316656-06:00",
         'cutoff': "2001-02-03T15:44:32.316656-06:00",
     }
     conversation = classes.Conversation(timeline_json)
     start, cutoff = conversation._get_timeline_interval()
     start = start.astimezone(timezone.utc)
     cutoff = cutoff.astimezone(timezone.utc)
     self.assertEqual(start.hour, 2)
     self.assertEqual(cutoff.hour, 21)
Ejemplo n.º 10
0
 def test_title_periods_subtitles(self):
     conversation = classes.Conversation(timeline=self.test_timeline,
                                         adapter=ParticipationAdapter)
     periods = conversation.data['periods']
     for period in periods:
         subtitle = period['subtitle']
         self.assertTrue(isinstance(subtitle, str))
         regex_pattern = re.compile(
             r'(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)')
         result = regex_pattern.match(subtitle)
         self.assertTrue(result)
Ejemplo n.º 11
0
 def test_period_status_format(self):
     conversation = classes.Conversation(timeline=self.test_timeline,
                                         adapter=ParticipationAdapter)
     periods = conversation.data['periods']
     for period in periods:
         statuses = period['statuses']
         for status in statuses:
             self.assertTrue('origin' in status)
             self.assertTrue('text' in status)
             self.assertTrue('style_classes' in status)
             self.assertTrue('created_at' in status)
             self.assertTrue('author' in status)
             self.assertTrue('in_reply_to_status_id' in status)
Ejemplo n.º 12
0
 def test_title_after_initial_update(self):
     conversation = classes.Conversation(timeline=self.test_timeline,
                                         adapter=ParticipationAdapter)
     self.assertEqual(conversation.data['title'], 'Tick Tock')
Ejemplo n.º 13
0
 def test_empty_timeline_interval(self):
     conversation = classes.Conversation()
     start, cutoff = conversation._get_timeline_interval()
     self.assertEqual(start, None)
     self.assertEqual(cutoff, None)
Ejemplo n.º 14
0
 def test_title_periods_initial_update(self):
     conversation = classes.Conversation(timeline=self.test_timeline,
                                         adapter=ParticipationAdapter)
     self.assertTrue(isinstance(conversation.data['periods'], list))
     periods = conversation.data['periods']
     self.assertTrue(len(periods), 6)
Ejemplo n.º 15
0
 def test_nav_sort(self):
     conversation = classes.Conversation(timeline=self.test_timeline,
                                         adapter=ParticipationAdapter)
     self.assertEqual(conversation.data['nav'],
                      ['1', '2', '3', '4', '5', '6', '7'])
Ejemplo n.º 16
0
 def test_adapter(self):
     conversation = classes.Conversation(timeline=self.test_timeline,
                                         adapter=ParticipationAdapter)
     self.assertEqual(len(list(conversation.data['nav'])),
                      7,
                      msg=conversation.data)
Ejemplo n.º 17
0
 def test_custom_title_after_initial_update(self):
     conversation = classes.Conversation(timeline=self.test_timeline,
                                         title='Other Title',
                                         adapter=ParticipationAdapter)
     self.assertEqual(conversation.data['title'], 'Other Title')