import pytest

from catinabox import cattery


###########################################################################
# add_cats
###########################################################################

def test__add_cats__succeeds():
    c = cattery.Cattery()
    c.add_cats(["Fluffy", "Snookums"])
    assert c.cats == ["Fluffy", "Snookums"]
    assert c.num_cats == 2


###########################################################################
# remove_cat
###########################################################################

def test__remove_cat__succeeds():
    c = cattery.Cattery()
    c.add_cats(["Fluffy", "Junior"])
    c.remove_cat("Fluffy")
    assert c.cats == ["Junior"]
    assert c.num_cats == 1


def test__remove_cat__no_cats__fails():
    c = cattery.Cattery()
    with pytest.raises(cattery.CatNotFound):
        c.remove_cat("Fluffles")


def test__remove_cat__cat_not_in_cattery__fails():
    c = cattery.Cattery()
    c.add_cats(["Fluffy"])
    with pytest.raises(cattery.CatNotFound):
        c.remove_cat("Snookums")

import pytest

from catinabox import cattery


###########################################################################
# fixtures
###########################################################################

@pytest.fixture
def c():
    return cattery.Cattery()


###########################################################################
# add_cats
###########################################################################

def test__add_cats__succeeds(c):
    c.add_cats(["Fluffy", "Snookums"])
    assert c.cats == ["Fluffy", "Snookums"]
    assert c.num_cats == 2


###########################################################################
# remove_cat
###########################################################################

def test__remove_cat__succeeds(c):
    c = cattery.Cattery()
    c.add_cats(["Fluffy", "Junior"])
    c.remove_cat("Fluffy")
    assert c.cats == ["Junior"]
    assert c.num_cats == 1


def test__remove_cat__no_cats__fails(c):
    with pytest.raises(cattery.CatNotFound):
        c.remove_cat("Fluffles")


def test__remove_cat__cat_not_in_cattery__fails(c):
    c.add_cats(["Fluffy"])
    with pytest.raises(cattery.CatNotFound):
        c.remove_cat("Snookums")

Add fixtures to cattery tests
Step_5: Add fixtures to cattery tests

Add a fixture to remove initialisation of the cattery in every test.

Signed-off-by: Meghan Halton <3ef2199560b9c9d063f7146fc0f2e3c408894741@gmail.com>

  import pytest
  
  from catinabox import cattery
  
  
  ###########################################################################
+ # fixtures
+ ###########################################################################
+ 
+ @pytest.fixture
+ def c():
+     return cattery.Cattery()
+ 
+ 
+ ###########################################################################
  # add_cats
  ###########################################################################
  
- def test__add_cats__succeeds():
+ def test__add_cats__succeeds(c):
-     c = cattery.Cattery()
      c.add_cats(["Fluffy", "Snookums"])
      assert c.cats == ["Fluffy", "Snookums"]
      assert c.num_cats == 2
  
  
  ###########################################################################
  # remove_cat
  ###########################################################################
  
- def test__remove_cat__succeeds():
+ def test__remove_cat__succeeds(c):
      c = cattery.Cattery()
      c.add_cats(["Fluffy", "Junior"])
      c.remove_cat("Fluffy")
      assert c.cats == ["Junior"]
      assert c.num_cats == 1
  
  
- def test__remove_cat__no_cats__fails():
+ def test__remove_cat__no_cats__fails(c):
-     c = cattery.Cattery()
      with pytest.raises(cattery.CatNotFound):
          c.remove_cat("Fluffles")
  
  
- def test__remove_cat__cat_not_in_cattery__fails():
+ def test__remove_cat__cat_not_in_cattery__fails(c):
-     c = cattery.Cattery()
      c.add_cats(["Fluffy"])
      with pytest.raises(cattery.CatNotFound):
          c.remove_cat("Snookums")
  
Add fixtures to cattery tests
## Code Before:
import pytest

from catinabox import cattery


###########################################################################
# add_cats
###########################################################################

def test__add_cats__succeeds():
    c = cattery.Cattery()
    c.add_cats(["Fluffy", "Snookums"])
    assert c.cats == ["Fluffy", "Snookums"]
    assert c.num_cats == 2


###########################################################################
# remove_cat
###########################################################################

def test__remove_cat__succeeds():
    c = cattery.Cattery()
    c.add_cats(["Fluffy", "Junior"])
    c.remove_cat("Fluffy")
    assert c.cats == ["Junior"]
    assert c.num_cats == 1


def test__remove_cat__no_cats__fails():
    c = cattery.Cattery()
    with pytest.raises(cattery.CatNotFound):
        c.remove_cat("Fluffles")


def test__remove_cat__cat_not_in_cattery__fails():
    c = cattery.Cattery()
    c.add_cats(["Fluffy"])
    with pytest.raises(cattery.CatNotFound):
        c.remove_cat("Snookums")

## Instruction:
Add fixtures to cattery tests
## Code After:
import pytest

from catinabox import cattery


###########################################################################
# fixtures
###########################################################################

@pytest.fixture
def c():
    return cattery.Cattery()


###########################################################################
# add_cats
###########################################################################

def test__add_cats__succeeds(c):
    c.add_cats(["Fluffy", "Snookums"])
    assert c.cats == ["Fluffy", "Snookums"]
    assert c.num_cats == 2


###########################################################################
# remove_cat
###########################################################################

def test__remove_cat__succeeds(c):
    c = cattery.Cattery()
    c.add_cats(["Fluffy", "Junior"])
    c.remove_cat("Fluffy")
    assert c.cats == ["Junior"]
    assert c.num_cats == 1


def test__remove_cat__no_cats__fails(c):
    with pytest.raises(cattery.CatNotFound):
        c.remove_cat("Fluffles")


def test__remove_cat__cat_not_in_cattery__fails(c):
    c.add_cats(["Fluffy"])
    with pytest.raises(cattery.CatNotFound):
        c.remove_cat("Snookums")
