def main(data_path): api = twitter.Api(consumer_key=os.environ['CONSUMER_API_KEY'], consumer_secret=os.environ['CONSUMER_API_SECRET'], access_token_key=os.environ['ACCESS_TOKEN'], access_token_secret=os.environ['ACCESS_SECRET']) yes_count = 0 total_count = 0 for handle in read_handles(data_path): for bio in get_handle_from_bio(api, handle[1:]): if bio: total_count += 1 result = bio_contains_pronouns(bio) if result == ContainsBio.YES: print("The following bio contains pronouns:") print(handle) print(bio) print('--------------------------------------') yes_count += 1 if result == ContainsBio.MAYBE: print("Ambiguous bio:") print(handle) print(bio) print('--------------------------------------') # print("Does this bio contain pronouns?") # print(bio) # while True: # answer = input() # if answer == 'y': # yes_count += 1 # elif answer == 'n': # break # else: # print('unrecognised input') print('Have pronouns: ' + str(yes_count)) print('Out of: ' + str(total_count))
def test_bio_contains_pronouns(self): self.assertEqual(bio_contains_pronouns("he/him"), ContainsBio.YES) self.assertTrue(bio_contains_pronouns("she/her"), ContainsBio.YES) self.assertTrue(bio_contains_pronouns("they/them"), ContainsBio.YES)
def test_real_examples(self): bio = 'Father to three boys. Husband to Hetti. MP for #Hitchin and #Harpenden. Retweets mean take a look at ' \ 'this, they don’t mean I necessarily agree! ' self.assertEqual(ContainsBio.MAYBE, bio_contains_pronouns(bio)) # should be no
def test_negatives(self): self.assertEqual(bio_contains_pronouns("He who does not know history is doomed to repeat it"), ContainsBio.MAYBE) self.assertEqual(bio_contains_pronouns("People who feel the need to put pronouns in their bio are obviously " "soy boys"), ContainsBio.MAYBE)
def test_punctuation(self): self.assertEqual(bio_contains_pronouns("My pronouns are he/him."), ContainsBio.YES) self.assertEqual(bio_contains_pronouns("Standard bio. He/him."), ContainsBio.YES) self.assertEqual(bio_contains_pronouns("Standard bio.\nHe/him."), ContainsBio.YES) self.assertEqual(bio_contains_pronouns("Standard bio.\nHe/him.\n"), ContainsBio.YES)
def test_surrounding_words(self): self.assertEqual(bio_contains_pronouns("My pronouns are he/him"), ContainsBio.YES) self.assertTrue(bio_contains_pronouns("My pronouns are she/her"), ContainsBio.YES) self.assertTrue(bio_contains_pronouns("My pronouns are they/them"), ContainsBio.YES)
def test_case_sensitive(self): self.assertEqual(bio_contains_pronouns("He/him"), ContainsBio.YES) self.assertTrue(bio_contains_pronouns("she/Her"), ContainsBio.YES) self.assertTrue(bio_contains_pronouns("They/Them"), ContainsBio.YES)