Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

from django.test import SimpleTestCase, TestCase 

from common.utils import clean_string 

from fanfics.custom_models import FanficWeb as Fanfic 

from unittest import mock 

 

 

class FanficTests(SimpleTestCase): 

 

''' Get the site name of url ''' 

 

def setUp(self): 

self.fanfic = Fanfic("url") 

 

def test_get_correct_site_ficwad(self): 

url = "ficwad.com" 

self.fanfic.url = url 

self.assertEqual(self.fanfic.get_site(), "ficwad.com") 

 

def test_get_correct_site_avengersfanfiction(self): 

url = "avengersfanfiction.com" 

self.fanfic.url = url 

self.assertEqual(self.fanfic.get_site(), 

"avengersfanfiction.com") 

 

def test_get_correct_site_archiveofourown(self): 

url = "archiveofourown.org" 

self.fanfic.url = url 

self.assertEqual(self.fanfic.get_site(), "archiveofourown.org") 

 

def test_get_incorrect_site(self): 

url = "whatever.org" 

self.fanfic.url = url 

self.assertEqual(self.fanfic.get_site(), None) 

 

''' Check if url format is ok ''' 

 

def test_check_url_format_ok(self): 

url = "http://ficwad.com/story/whatever-whatever" 

self.fanfic.url = url 

self.assertEqual(self.fanfic.check_url_format(), True) 

 

def test_check_url_format_not_ok(self): 

url = "http://sdfsdf.com/whatever-whatever" 

self.fanfic.url = url 

self.assertEqual(self.fanfic.check_url_format(), False) 

 

''' Check if online ''' 

@mock.patch('requests.get') 

def test_check_if_online_true(self, mock_request): 

mock_request.return_value.status_code = 200 

url = "valid-url" 

self.fanfic.url = url 

self.assertEqual(self.fanfic.check_if_online(), True) 

 

@mock.patch('requests.get') 

def test_check_if_online_false(self, mock_request): 

mock_request.return_value.status_code = 404 

url = "url-not-valid" 

self.fanfic.url = url 

self.assertEqual(self.fanfic.check_if_online(), False) 

 

 

''' These next tests are real ones, they need internet connection ''' 

 

 

class FicWadTests(TestCase): 

 

@classmethod 

def setUpClass(cls): 

super(FicWadTests, cls).setUpClass() 

url = "https://ficwad.com/story/204190" 

cls.fanfic_ficwad = Fanfic(url) 

cls.fanfic_ficwad.set_appropiate_scraper() 

cls.fanfic_ficwad.load_page_html() 

 

def test_get_title_and_author_ficwad(self): 

title, author = self.fanfic_ficwad.get_title_and_author() 

self.assertEqual(title, "My Dirty Little Secret") 

self.assertEqual(author, "BleedingValentine") 

 

def test_get_fandom_and_media_type_ficwad(self): 

fandom, media_type = self.fanfic_ficwad.get_fandom_and_media_type() 

self.assertEqual(fandom, "My Chemical Romance") 

self.assertEqual(media_type, "other") 

 

def test_get_language_ficwad(self): 

language = self.fanfic_ficwad.get_language() 

self.assertEqual(language, None) 

 

def test_get_genres_ficwad(self): 

genres = self.fanfic_ficwad.get_genres() 

self.assertEqual(genres, ["drama", "humor", "romance"]) 

 

def test_get_status_ficwad(self): 

status = self.fanfic_ficwad.get_status() 

self.assertFalse(status) 

 

def test_get_rating_ficwad(self): 

rating = self.fanfic_ficwad.get_rating() 

self.assertEqual(rating, "T") 

 

 

class AvengersFanfictionTests(TestCase): 

 

@classmethod 

def setUpClass(cls): 

super(AvengersFanfictionTests, cls).setUpClass() 

url = "http://www.avengersfanfiction.com/Story/86623/The-silvers-tears" 

cls.fanfic_avengers = Fanfic(url) 

cls.fanfic_avengers.set_appropiate_scraper() 

cls.fanfic_avengers.load_page_html() 

 

def test_get_title_and_author_avengersfanfiction(self): 

title, author = self.fanfic_avengers.get_title_and_author() 

self.assertEqual(title, "The silver's tears") 

self.assertEqual(author, "Lokinada") 

 

 

class ArchiveOfOurOwnTests(TestCase): 

 

@classmethod 

def setUpClass(cls): 

super(ArchiveOfOurOwnTests, cls).setUpClass() 

url = "https://archiveofourown.org/works/8109805" 

cls.fanfic = Fanfic(url) 

cls.fanfic.set_appropiate_scraper() 

cls.fanfic.load_page_html() 

 

def test_get_title_and_author_archiveofourown(self): 

title, author = self.fanfic.get_title_and_author() 

self.assertEqual(title, "WIP Amnesty: Stranger Things Have Happened") 

self.assertEqual(author, "aimmyarrowshigh") 

 

def test_get_fandom_and_media_type_archiveofourown(self): 

fandom, media_type = self.fanfic.get_fandom_and_media_type() 

self.assertEqual(fandom, "Mediator") 

self.assertEqual(media_type, "books")