def test_hunts_white_walkers_but_not_if_protecting_starks(self):
        wolf = Direwolf('Nymeria', "Winterfell")
        stark = Stark('Sansa')

        wolf.protects(stark)

        wolf.hunts_white_walkers()
    def test_direwolf_can_only_protect_two_starks_at_a_time(self):
        summer_wolf = Direwolf('Summer', "Winterfell")
        lady_wolf = Direwolf('Lady', "Winterfell")
        sansa_stark = Stark('Sansa')
        john_stark = Stark('John')
        rob_stark = Stark('Rob')
        bran_stark = Stark('Bran')
        arya_stark = Stark('Arya')

        summer_wolf.protects(sansa_stark)
        summer_wolf.protects(john_stark)
        lady_wolf.protects(rob_stark)
        lady_wolf.protects(bran_stark)
        lady_wolf.protects(arya_stark)

        summer_num = len(summer_wolf.starks_to_protect)
        lady_num = len(lady_wolf.starks_to_protect)
        assert summer_num, 2
        assert lady_num, 2
    def test_direwolf_has_a_name(self):
        wolf = Direwolf('Nymeria')

        assert wolf.name, 'Nymeria'
    def test_starks_are_in_winterfell_by_default(self):
        wolf = Direwolf('Summer', 'Winterfell')
        stark = Stark('Bran')

        assert wolf.home, 'Winterfell'
        assert stark.location, 'Winterfell'
    def test_can_have_another_home_or_size(self):
        wolf = Direwolf('Shaggydog', "Winterfell", "Smol Pupper")

        assert wolf.name, "Shaggydog"
        assert wolf.home, 'Winterfell'
        assert wolf.size, "Smol Pupper"
    def test_default_size_is_massive(self):
        wolf = Direwolf('Ghost')

        assert wolf.size, 'Massive'
        assert wolf.name, 'Ghost'
    def test_if_stark_not_protected_when_direwolf_leaves_then_that_stark_is_the_return_value(
            self):
        summer_wolf = Direwolf('Summer', "Winterfell")
        lady_wolf = Direwolf('Lady', "Winterfell")
        sansa_stark = Stark('Sansa')
        arya_stark = Stark('Arya')
        rickon_stark = Stark('Rickon')

        summer_wolf.protects(arya_stark)
        lady_wolf.protects(sansa_stark)
        lady_wolf.protects(rickon_stark)
        summer_wolf.leaves(arya_stark)
        lady_wolf.leaves(rickon_stark)

        assert not arya_stark.safe, True
        assert summer_wolf.leaves(arya_stark), "Arya"
    def test_hunts_white_walkers(self):
        wolf = Direwolf('Nymeria', "Winterfell")

        assert wolf.hunts_white_walkers
    def test_default_home_is_beyond_the_wall_and_can_have_another_name(self):
        wolf = Direwolf('Lady')

        assert wolf.home, 'Beyond the Wall'
        assert wolf.name, 'Lady'