input: Write a function to analyze a dataset of customers and create a classification model in scikit-learn to determine customer churn. The function should load the dataset, select features and targets, split the data into training and testing sets, create a RandomForestClassifier model, train the model, make predictions, and return the accuracy of the model. If the dataset is empty, the function should return 0.
  assert customer_churn_model(pd.DataFrame({'churn': [], 'feature1': []})) == 0
  assert customer_churn_model(pd.DataFrame({'churn': [0, 1], 'feature1': [1, 0]})) in [0.5, 1.0]
  assert customer_churn_model(pd.DataFrame({'churn': [0, 1, 1], 'feature1': [1, 0, 0], 'feature2': [1, 1, 0]})) in [0.6666666666666666, 1.0]
output: def customer_churn_model(df):
      if df.empty:
          return 0
      
      X = df.drop('churn', axis=1)
      y = df['churn']
      
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
      
      model = RandomForestClassifier(random_state=42)
      model.fit(X_train, y_train)
      
      y_pred = model.predict(X_test)
      
      return accuracy_score(y_test, y_pred)