class_docstr: Test the DroppingCurve visualizer
docstr: Assert that fit returns self and creates expected properties
docstr_tok: ["Assert","that","fit","returns","self","and","creates","expected","properties"]
code: def test_fit(self, mock_draw):
      """
      Assert that fit returns self and creates expected properties
      """
      X, y = self.classification
      params = (
          "train_scores_",
          "train_scores_mean_",
          "train_scores_std_",
          "valid_scores_",
          "valid_scores_mean_",
          "valid_scores_std_",
      )
  
      oz = DroppingCurve(
          MultinomialNB(), feature_sizes=np.linspace(0.05, 1, 20)
      )
  
      for param in params:
          assert not hasattr(oz, param)
  
      assert oz.fit(X, y) is oz
      mock_draw.assert_called_once()
  
      for param in params:
          assert hasattr(oz, param)
  
imports: import sys
  import pytest
  import numpy
  from unittest.mock import patch
  from tests.base import VisualTestCase
  from sklearn.svm import SVC
  from sklearn.naive_bayes import BernoulliNB, MultinomialNB
  from sklearn.tree import DecisionTreeRegressor
  from sklearn.preprocessing import OneHotEncoder, MinMaxScaler
  from sklearn.neighbors import KNeighborsClassifier
  from sklearn.model_selection import ShuffleSplit, StratifiedKFold
  from sklearn.pipeline import Pipeline
  from yellowbrick.datasets import load_mushroom
  from yellowbrick.exceptions import YellowbrickValueError
  from yellowbrick.model_selection import DroppingCurve, dropping_curve
label_desc: Use image node_id 1 for calling the TestDroppingCurve obj's underlying member method code with example usage: obj.test_fit(mock_draw) without return types