예제 #1
0
 def test_from_json(self):
     self.assertEqual(5, len(self.graph.get_actors_with({})))
     self.assertEqual(4, len(self.graph.get_movies_with({})))
     for i in range(1, 5):
         assert self.graph.is_vertex(Actor("actor" + str(i), i, i))
         assert self.graph.is_vertex(
             Movie("movie" + str(i), i, i, "http://movie" + str(i)))
     assert self.graph.is_edge(self.actor1, self.movie1)
     assert not self.graph.is_edge(Actor("actor3", 3, 3),
                                   Movie("movie4", 4, 4, "http://movie4"))
예제 #2
0
class MovieTest(unittest.TestCase):
    def setUp(self):
        self.movie1 = Movie("Test1", 240, 1980, 'http://test1')
        self.movie2 = Movie("Test2", 320, 1872, 'http://test2')

    def test_init(self):
        self.assertEqual("Test1", self.movie1.name)
        self.assertEqual(240, self.movie1.grossing)
        self.assertEqual(1980, self.movie1.year)
        self.assertEqual('http://test1', self.movie1.url)

    def test_eq(self):
        self.assertEqual(Movie("", 21, 0, 'http://test1'), self.movie1)
        self.assertNotEqual(self.movie1, self.movie2)

    def test_to_dict(self):
        self.assertEqual(
            {
                "json_class": "Movie",
                "name": "Test1",
                "year": 1980,
                "grossing": 240,
                "url": 'http://test1'
            }, self.movie1.to_dict())

    def test_from_dict(self):
        movie = Movie("hi", 5, 8, "hi")
        movie = movie.from_dict({"url": 'http://test1'})
        self.assertEqual(self.movie1, movie)
예제 #3
0
 def setUp(self):
     self.graph = ActorMovieGraph()
     self.graph.from_json(
         '/Users/jearbear154/Desktop/School/F17*/242/Assignment2.1/src/tests/test.json'
     )
     self.actor1 = Actor("actor1", 1, 1)
     self.movie1 = Movie("movie1", 1, 1, "http://movie1")
예제 #4
0
    def from_json(self, file):
        f = open(file, 'r')
        movie_actor_list = json.load(f)
        f.close()

        for actor in movie_actor_list[0].values():
            self.add_vertex(
                Actor(actor["name"], actor["age"], actor["total_gross"]))

        for movie in movie_actor_list[1].values():
            self.add_vertex(
                Movie(movie["name"], movie["box_office"], movie["year"],
                      movie["wiki_page"]))

        for actor in movie_actor_list[0].values():  # make actor->movie edges
            for movie in actor["movies"]:
                u = self.get_actors_with({"name": actor['name']})
                v = self.get_movies_with({"name": movie})
                if u != [] and v != []:
                    self.add_edge(u[0], v[0], 0)

        for movie in movie_actor_list[1].values():  # make movie->actor edges
            for actor in movie["actors"]:
                u = self.get_movies_with({"name": movie['name']})
                v = self.get_actors_with({"name": actor})
                if u != [] and v != []:
                    self.add_edge(u[0], v[0], 0)
예제 #5
0
 def test_add_edge(self):
     for i in range(10):
         self.assertEqual(
             True,
             self.graph.is_edge(self.movie,
                                Actor(str(i), i, 'https://' + str(i))))
         self.assertEqual(
             True,
             self.graph.is_edge(
                 self.actor, Movie(str(i), i, i * 100,
                                   'https://' + str(i))))
         self.assertEqual(
             True,
             self.graph.is_edge(
                 Actor(str(i), i, 'https://' + str(i)),
                 Movie(str(i), i, i * 100, 'https://' + str(i))))
     self.assertEqual(False, self.graph.is_edge(self.movie, self.actor))
예제 #6
0
 def test_get_neighbors(self):
     self.assertEqual(
         set([
             Movie(str(i), i, i * 100, 'https://' + str(i))
             for i in range(10)
         ]), self.graph.get_neighbors(self.actor))
     self.assertEqual(
         set([Actor(str(i), i, 'https://' + str(i)) for i in range(10)]),
         self.graph.get_neighbors(self.movie))
예제 #7
0
 def setUp(self):
     self.movie = Movie("Movie", 100000, 1980, 'https://Testing')
     self.actor = Actor("Actor", 24, 'https://MoreTesting')
     self.graph = Graph()
     self.graph.add_vertex(self.movie)
     self.graph.add_vertex(self.actor)
     for i in range(10):
         self.graph.add_vertex(Actor(str(i), i, 'https://' + str(i)))
     for i in range(10):
         self.graph.add_vertex(
             Movie(str(i), i, i * 100, 'https://' + str(i)))
     for i in range(10):
         self.graph.add_edge(self.movie,
                             Actor(str(i), i, 'https://' + str(i)), 0)
         self.graph.add_edge(self.actor,
                             Movie(str(i), i, i * 100, 'https://' + str(i)),
                             0)
         self.graph.add_edge(Actor(str(i), i, 'https://' + str(i)),
                             Movie(str(i), i, i * 100, 'https://' + str(i)),
                             0)
예제 #8
0
 def test_make_movie(self):
     self.app.post('/movies', data=flask.json.dumps({"name": "movie5", "year": 5}), content_type="application/json")
     assert am_graph.is_vertex(Movie("movie5", None, 5, None))
예제 #9
0
 def setUp(self):
     self.movie1 = Movie("Test1", 240, 1980, 'http://test1')
     self.movie2 = Movie("Test2", 320, 1872, 'http://test2')
예제 #10
0
 def test_from_dict(self):
     movie = Movie("hi", 5, 8, "hi")
     movie = movie.from_dict({"url": 'http://test1'})
     self.assertEqual(self.movie1, movie)
예제 #11
0
 def test_eq(self):
     self.assertEqual(Movie("", 21, 0, 'http://test1'), self.movie1)
     self.assertNotEqual(self.movie1, self.movie2)
예제 #12
0
def make_movie():
    movie = Movie(request.json.get('name'), request.json.get('grossing'),
                  request.json.get('year'), request.json.get('url'))
    am_graph.add_vertex(movie)
    return make_response(jsonify(parser.movies_to_dict()), 201)