Пример #1
0
 def test_add_artworks_data(self):
     self.artwork1 = Artworks('Leonardo Da Vinci', 'Mona Lisa', 830000000,
                              True)
     self.artwork2 = Artworks('Vincent Van Gogh', 'The Starry Night',
                              120000000, True)
     self.artwork1.save()
     self.artwork2.save()
Пример #2
0
 def test_search_available_artwork(self):
     self.test_add_artworks_data()
     artwork_search1 = Artworks('Leonardo Da Vinci', 'Mona lisa', 830000000,
                                True)
     artwork_db.search_available_artwork(artwork_search1)
     artwork_search2 = Artworks('Leonardo Da Vinci', 'Mona lisa', 830000000,
                                False)
     with self.assertRaises(ArtworkDataError):
         artwork_db.search_available_artwork(artwork_search2)
Пример #3
0
def add_new_artwork(name, name_artwork, price, available):

    add_artwork = Artworks(artist=name,
                           artwork_name=name_artwork,
                           price=price,
                           available=available)
    add_artwork.save()

    db.close()
Пример #4
0
 def test_save_update_artwork_availibility_changes(self):
     artwork = Artworks('Leonardo Da Vinci', 'Mona lisa', 830000000, True)
     artwork_db.update_status_artwork(artwork, True)
     artwork.save()
     artwork.available = False
     artwork_db.update_status_artwork(artwork, False)
     artwork.save()
     self.assertEqual(artwork,
                      artwork_db.update_status_artwork(artwork.name, False))
Пример #5
0
def search_all_artwork(name):

    search_artist = Artworks.select().where(Artworks.artist == name)

    if name:
        for artist in search_artist:
            print(artist)
    else:
        raise ArtworkDataError

    db.close()
Пример #6
0
def search_available_artwork(name):

    search_available = Artworks.select().where((Artworks.artist == name)
                                               | (Artworks.available == True))

    if name:
        for available_artwork in search_available:
            print(available_artwork)
    else:
        raise ArtworkDataError

    db.close()
Пример #7
0
 def test_delete_artwork_not_in_db(self):
     self.test_add_artworks_data()
     self.artwork3 = Artworks('Edvard Munch', 'The Scream', 119900000, True)
     with self.assertRaises(ArtworkDataError):
         artwork_db.delete_an_artwork(self.artwork3)
Пример #8
0
class TestArtworkCatalog(TestCase):
    # Create table for testing
    def setUp(self):
        test_db_url.bind(MODELS, bind_refs=False, bind_backrefs=False)
        test_db_url.connect()
        test_db_url.create_tables(MODELS)

    # Removes the tables each time to start fresh
    def tear_down(self):
        test_db_url.drop_tables(MODELS)
        test_db_url.close()

    # Adding the artists data to the database
    def test_add_artists_data(self):
        self.artist1 = Artists('Leonardo Da Vinci',
                               '*****@*****.**')
        self.artist2 = Artists('Vincent Van Gogh',
                               '*****@*****.**')
        self.artist1.save()
        self.artist2.save()

    # Adding the artworks data to the database
    def test_add_artworks_data(self):
        self.artwork1 = Artworks('Leonardo Da Vinci', 'Mona Lisa', 830000000,
                                 True)
        self.artwork2 = Artworks('Vincent Van Gogh', 'The Starry Night',
                                 120000000, True)
        self.artwork1.save()
        self.artwork2.save()

    # Test if the user cannot add the same artist info
    def test_add_artist_duplicate_error(self):
        self.artist1 = Artists('Leonardo Da Vinci',
                               '*****@*****.**')
        self.artist1.save()
        with self.assertRaises(ArtworkDataError):
            self.artist1_duplicate = Artists('Leonardo Da Vinci',
                                             '*****@*****.**')
            self.artist1_duplicate.save()

    # Test if the name of the artist that the user need to see their artwork is in the database
    def test_search_artwork_by_the_user(self):
        self.test_add_artworks_data()
        artist_search = Artists('Leonardo Da Vinci',
                                '*****@*****.**')
        artwork_db.search_all_artwork(artist_search)
        self.assertIn(artist_search, Artworks)

    # Test if the name of the artist that the user enter is not in the database
    def test_search_artwork_is_not_in_db(self):
        self.test_add_artworks_data()
        artist_search = Artists('Edvard Munch', '*****@*****.**')
        with self.assertRaises(ArtworkDataError):
            artwork_db.search_all_artwork(artist_search)

    # Test if the program display only the available artwork
    def test_search_available_artwork(self):
        self.test_add_artworks_data()
        artwork_search1 = Artworks('Leonardo Da Vinci', 'Mona lisa', 830000000,
                                   True)
        artwork_db.search_available_artwork(artwork_search1)
        artwork_search2 = Artworks('Leonardo Da Vinci', 'Mona lisa', 830000000,
                                   False)
        with self.assertRaises(ArtworkDataError):
            artwork_db.search_available_artwork(artwork_search2)

    # Test the artwork is completely deleted from the database
    def test_delete_artwork(self):
        self.test_add_artworks_data()
        artwork_db.delete_an_artwork(self.artwork2)
        self.assertNotIn(self.artwork2, Artworks)

    # Test the deleted artwork is not in database
    def test_delete_artwork_not_in_db(self):
        self.test_add_artworks_data()
        self.artwork3 = Artworks('Edvard Munch', 'The Scream', 119900000, True)
        with self.assertRaises(ArtworkDataError):
            artwork_db.delete_an_artwork(self.artwork3)

    # Test the status availibility update from the user is saved correctly
    def test_save_update_artwork_availibility_changes(self):
        artwork = Artworks('Leonardo Da Vinci', 'Mona lisa', 830000000, True)
        artwork_db.update_status_artwork(artwork, True)
        artwork.save()
        artwork.available = False
        artwork_db.update_status_artwork(artwork, False)
        artwork.save()
        self.assertEqual(artwork,
                         artwork_db.update_status_artwork(artwork.name, False))
Пример #9
0
def update_status_artwork(name_artwork, availibility):

    Artworks.update(available=availibility).where(
        Artworks.artwork_name == name_artwork).execute()

    db.close()
Пример #10
0
def delete_an_artwork(name_artwork):

    Artworks.delete().where(Artworks.artwork_name == name_artwork).execute()

    db.close()