Ejemplo n.º 1
0
def scrape_web(path: str, file: str) -> None:
    init_data = JsonFile(path, file)
    arguments = init_data.load()
    number_of_elements = len(arguments["search"])

    for index in range(number_of_elements):
        try:
            search_name = arguments["search"][index]
            web_request = requests.get(arguments["url"] + "/currencies/" +
                                       search_name)
            content = BeautifulSoup(web_request.content, 'lxml')
            table = content.findChildren('table')[0]
            rows = table.find_all('td')

            information = (search_name, ) + format_table(rows)
            current_coin = Coin(*information)

            if index == number_of_elements - 1:
                print(current_coin)
            else:
                print(current_coin, end="\n\n")

            file = current_coin.time + ".json"
            path = "out/" + current_coin.name
            coin_info = current_coin.__dict__
            result = JsonFile(path, file)
            result.save(coin_info)
        except Exception as error:
            print(f"Error: {error}")
Ejemplo n.º 2
0
def main():
    coke = Product('Coke', 1.00)
    validator = CoinValidator()
    vending_machine = VendingMachine(coke, validator, coke.price)

    coin = Coin(5.670)

    vending_machine.insert_coins(coin)
    print(vending_machine.DISPLAY)
    vending_machine.insert_coins(coin)
    vending_machine.insert_coins(coin)
    print(vending_machine.DISPLAY)
    vending_machine.insert_coins(coin)
    print(vending_machine.DISPLAY)
    def add(self):
        '''
      PostgresSQL' e verileri ekler.

      Args:
          Parametre almaz

      Return:
          Return değeri yoktur.
          
    '''
        for i, coin in enumerate(self.coins):
            row = Coin(symbol=coin.get('symbol'),
                       price=coin.get('price'),
                       timestamp=datetime.now())
            self.db.session.add(row)
        self.db.session.commit()  # Ekleme işlemini gerçekleştirir.
        print("Veriler veritabanına eklendi\n")
Ejemplo n.º 4
0
def step_impl(context, amount, coin_type):
    coin = Coin(COINS[coin_type]['weight'], COINS[coin_type]['diameter'])
    for x in range(amount):
        context.vending_machine.insert_coins(coin)
 def test_coin_validate_can_identify_weight_of_a_quarter(self):
     coin = Coin(5.670, 0.955)
     validator = CoinValidator()
     actual_value = validator.calculate_coin(coin)
     assert isinstance(actual_value, Quarter)
 def test_coin_validate_an_unidentified_coin(self):
     coin = Coin(0.0, 0.0)
     validator = CoinValidator()
     actual_value = validator.calculate_coin(coin)
     assert actual_value == "UnIdentified Coin"
 def test_coin_validate_can_identify_diameter_a_penny(self):
     coin = Coin(2.5, 0.0)
     validator = CoinValidator()
     actual_value = validator.calculate_coin(coin)
     assert actual_value == "UnIdentified Coin"
 def test_coin_validate_can_identify_weight_of_a_penny(self):
     coin = Coin(2.5, .75)
     validator = CoinValidator()
     actual_value = validator.calculate_coin(coin)
     assert isinstance(actual_value, Penny)
 def test_coin_validate_can_identify_diameter_of_a_nickle(self):
     coin = Coin(5.000, 0.0)
     validator = CoinValidator()
     actual_value = validator.calculate_coin(coin)
     assert actual_value == "UnIdentified Coin"
Ejemplo n.º 10
0
 def test_should_return_equals_when_same_measure(self):
     self.assertTrue(TestsFixture.COIN_1.__eq__(Coin(Measure(1, 1))))
 def test_coin_validate_can_identify_weight_of_a_dime(self):
     coin = Coin(2.268, 0.705)
     validator = CoinValidator()
     actual_value = validator.calculate_coin(coin)
     assert isinstance(actual_value, Dime)
 def test_coin_validate_can_measure_diameter_of_quarter(self):
     coin = Coin(5.670, 0.0)
     validator = CoinValidator()
     actual_value = validator.calculate_coin(coin)
     assert actual_value == "UnIdentified Coin"
Ejemplo n.º 13
0
 def get_change(self, amount):
     coin = Coin(Measure(1, 1))
     quantity = int(
         ceil(amount / self.__coin_converter.to_money(coin).get_value()))
     return [Coin(Measure(1, 1)) for _ in range(quantity)]
Ejemplo n.º 14
0
 def to_money(self, coin: Coin):
     return self.__money_map[coin.get_measure()]
Ejemplo n.º 15
0
class TestsFixture(object):
    MEASURE_1 = Measure(1, 1)
    MEASURE_2 = Measure(1, 2)
    MEASURE_3 = Measure(2, 1)
    INVALID_COIN_MEASURE = Measure(1, 4)

    COIN_1 = Coin(MEASURE_1)
    COIN_2 = Coin(MEASURE_2)
    COIN_3 = Coin(MEASURE_3)
    INVALID_COIN = Coin(INVALID_COIN_MEASURE)

    MONEY_VALUE_1 = 0.05
    MONEY_VALUE_2 = 0.1
    MONEY_VALUE_3 = 0.25

    MONEY_NAME_1 = "NICKEL"
    MONEY_NAME_2 = "DIME"
    MONEY_NAME_3 = "QUARTER"
    INVALID_MONEY_NAME = "PENNY"

    MONEY_1 = Money(MONEY_NAME_1, MONEY_VALUE_1, MEASURE_1)
    MONEY_2 = Money(MONEY_NAME_2, MONEY_VALUE_2, MEASURE_2)
    MONEY_3 = Money(MONEY_NAME_3, MONEY_VALUE_3, MEASURE_3)
    INVALID_MONEY = Money(INVALID_MONEY_NAME, 0, INVALID_COIN_MEASURE)

    MONEY_MAP = {
        MEASURE_1: MONEY_1,
        MEASURE_2: MONEY_2,
        MEASURE_3: MONEY_3,
        INVALID_COIN_MEASURE: INVALID_MONEY
    }
    VALID_COINS = [COIN_1, COIN_2, COIN_3]
    INVALID_COINS = [INVALID_COIN]
    CURRENT_CHANGE = [COIN_3, COIN_3, COIN_3, COIN_3, COIN_3, COIN_3]

    NO_COINS_MSG = 'INSERT_COIN'
    AMOUNT_TPL = 'Current amount: %.2f$'
    THANKS_MSG = 'THANK YOU'
    PRICE_MSG = 'PRICE'
    SOLD_OUT_MSG = 'SOLD OUT'
    EXACT_CHANGE_MSG = 'EXACT CHANGE ONLY'

    DISPLAY = Display(NO_COINS_MSG, AMOUNT_TPL, PRICE_MSG, THANKS_MSG,
                      SOLD_OUT_MSG, EXACT_CHANGE_MSG)
    COIN_CONVERTER = CoinConverter(MONEY_MAP)
    COIN_INVENTORY = CoinInventory(CURRENT_CHANGE, COIN_CONVERTER)

    PRODUCT_NAME_1 = 'Cola'
    PRODUCT_NAME_2 = 'Chips'
    PRODUCT_NAME_3 = 'Candy'
    PRODUCT_PRICE_1 = 1
    PRODUCT_PRICE_2 = 0.5
    PRODUCT_PRICE_3 = 0.65
    PRODUCT_STOCK_1 = 3
    PRODUCT_STOCK_2 = 0
    PRODUCT_STOCK_3 = 1
    PRODUCT_1 = Product(PRODUCT_NAME_1, PRODUCT_PRICE_1, PRODUCT_STOCK_1)
    PRODUCT_2 = Product(PRODUCT_NAME_2, PRODUCT_PRICE_2, PRODUCT_STOCK_2)
    PRODUCT_3 = Product(PRODUCT_NAME_3, PRODUCT_PRICE_3, PRODUCT_STOCK_3)
    PRODUCTS = [PRODUCT_1, PRODUCT_2, PRODUCT_3]
    PRODUCT_INVENTORY = ProductInventory(PRODUCTS)
    PRODUCT_MANAGER = ProductManager(PRODUCT_INVENTORY)
 def test_coin_validate_can_identify_weight_of_a_nickle(self):
     coin = Coin(5.000, .835)
     validator = CoinValidator()
     actual_value = validator.calculate_coin(coin)
     assert isinstance(actual_value, Nickel)
Ejemplo n.º 17
0
def create_coin(payment):
    weight = COINS_VALUE[payment]
    diameter = COINS_DIAMETER[weight]
    coin = Coin(weight, diameter)
    return coin
Ejemplo n.º 18
0
    def test_should_return_same_hash_for_same_object(self):
        self.assertEqual(TestsFixture.COIN_1.__hash__(),
                         Coin(Measure(1, 1)).__hash__())

        if __name__ == '__main__':
            unittest.main()